CVE-2026-99136
HIGHAttack Surface
CVSS Vector Breakdown
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.
Affected Software (23)
| Vendor | Product | Version |
|---|---|---|
| Linux | Linux | b35f8caa0890169000fec22902290d9a15274cbd < ac5d887ab93592fc5e3605fe30c1d8d232d609b3 |
| Linux | Linux | b35f8caa0890169000fec22902290d9a15274cbd < 445a6883f46d3ab1ff545199a8cc1d5834936d3f |
| Linux | Linux | b35f8caa0890169000fec22902290d9a15274cbd < 6f82e86471c92fd874f2630c9a6af887f4ed1a77 |
| Linux | Linux | b35f8caa0890169000fec22902290d9a15274cbd < 6ac8546df1f8a2b1ca7f6d67c269057a99fbbf8c |
| Linux | Linux | b35f8caa0890169000fec22902290d9a15274cbd < 056bf8322e39a48026df352d6227ec03dd8cd032 |
| Linux | Linux | b35f8caa0890169000fec22902290d9a15274cbd < d9d7069bb79139271b54dc477f07e242c445de6b |
| Linux | Linux | b35f8caa0890169000fec22902290d9a15274cbd < ac5d887ab93592fc5e3605fe30c1d8d232d609b3 |
| Linux | Linux | b35f8caa0890169000fec22902290d9a15274cbd < 4f16bb982b27b9f5a15301f622c318001fe521f8 |
| Linux | Linux | b35f8caa0890169000fec22902290d9a15274cbd < 148845aa1921d95ef5dc851c76e6a284f6657df6 |
| Linux | Linux | 9c8f3fcd3ffd3283cc0971c8919058356f20a963 |
| Linux | Linux | 2.6.28.9 < 2.6.29 |
| Linux | Linux | 2.6.29 |
| Linux | Linux | b35f8caa0890169000fec22902290d9a15274cbd < 445a6883f46d3ab1ff545199a8cc1d5834936d3f |
| Linux | Linux | b35f8caa0890169000fec22902290d9a15274cbd < 6f82e86471c92fd874f2630c9a6af887f4ed1a77 |
| Linux | Linux | b35f8caa0890169000fec22902290d9a15274cbd < 6ac8546df1f8a2b1ca7f6d67c269057a99fbbf8c |
| Linux | Linux | b35f8caa0890169000fec22902290d9a15274cbd < 056bf8322e39a48026df352d6227ec03dd8cd032 |
| Linux | Linux | b35f8caa0890169000fec22902290d9a15274cbd < d9d7069bb79139271b54dc477f07e242c445de6b |
| Linux | Linux | b35f8caa0890169000fec22902290d9a15274cbd < ac5d887ab93592fc5e3605fe30c1d8d232d609b3 |
| Linux | Linux | b35f8caa0890169000fec22902290d9a15274cbd < 4f16bb982b27b9f5a15301f622c318001fe521f8 |
| Linux | Linux | b35f8caa0890169000fec22902290d9a15274cbd < 148845aa1921d95ef5dc851c76e6a284f6657df6 |
| Linux | Linux | 9c8f3fcd3ffd3283cc0971c8919058356f20a963 |
| Linux | Linux | 2.6.28.9 < 2.6.29 |
| Linux | Linux | 2.6.29 |