{"id":"CVE-2026-99136","revision":"3d2b12c7df314e18b2526647ee9bd248","records":[{"revision":"3d2b12c7df314e18b2526647ee9bd248","observedAt":"2026-10-30T13:45:33.454+00:00","statement":{"source":"cve-program","id":"CVE-2026-99136","aliases":[],"title":"dm-crypt: fix a tiny race condition in crypt_dec_pending","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ndm-crypt: fix a tiny race condition in crypt_dec_pending\n\ncrypt_dec_pending reads io->error before calling atomic_dec_and_test.\nAnother context, for example crypt_endio called from an interrupt, may\nset io->error and drop its reference between the read and the\ndecrement. crypt_dec_pending then drops the last reference and completes\nthe bio with the stale status - so a read that failed and was never\ndecrypted, or a write that failed, is reported as successful.\n\nThe read was placed before the decrement by commit b35f8caa0890 (\"dm\ncrypt: wait for endio to complete before destruction\"), because that\ncommit freed dm_crypt_io before calling bio_endio. This is no longer the\ncase, dm_crypt_io lives in the per-bio data now.\n\nRead io->error after atomic_dec_and_test instead. atomic_dec_and_test is\nfully ordered, so no additional barrier is needed.","state":0,"publishedAt":"2026-10-28T10:34:48.558+00:00","modifiedAt":"2026-10-30T12:42:09.702+00:00","affected":[{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"unaffected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"drivers/md/dm-crypt.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"b35f8caa0890169000fec22902290d9a15274cbd\",\n                            \"lessThan\": \"445a6883f46d3ab1ff545199a8cc1d5834936d3f\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"b35f8caa0890169000fec22902290d9a15274cbd\",\n                            \"lessThan\": \"6f82e86471c92fd874f2630c9a6af887f4ed1a77\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"b35f8caa0890169000fec22902290d9a15274cbd\",\n                            \"lessThan\": \"6ac8546df1f8a2b1ca7f6d67c269057a99fbbf8c\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"b35f8caa0890169000fec22902290d9a15274cbd\",\n                            \"lessThan\": \"056bf8322e39a48026df352d6227ec03dd8cd032\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"b35f8caa0890169000fec22902290d9a15274cbd\",\n                            \"lessThan\": \"d9d7069bb79139271b54dc477f07e242c445de6b\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"b35f8caa0890169000fec22902290d9a15274cbd\",\n                            \"lessThan\": \"ac5d887ab93592fc5e3605fe30c1d8d232d609b3\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"b35f8caa0890169000fec22902290d9a15274cbd\",\n                            \"lessThan\": \"4f16bb982b27b9f5a15301f622c318001fe521f8\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"b35f8caa0890169000fec22902290d9a15274cbd\",\n                            \"lessThan\": \"148845aa1921d95ef5dc851c76e6a284f6657df6\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"9c8f3fcd3ffd3283cc0971c8919058356f20a963\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"2.6.28.9\",\n                            \"lessThan\": \"2.6.29\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        }\n                    ]\n                }"},{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"affected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"drivers/md/dm-crypt.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"2.6.29\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"2.6.29\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.10.273\",\n                            \"lessThanOrEqual\": \"5.10.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.15.224\",\n                            \"lessThanOrEqual\": \"5.15.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.1.191\",\n                            \"lessThanOrEqual\": \"6.1.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.6.161\",\n                            \"lessThanOrEqual\": \"6.6.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.12.115\",\n                            \"lessThanOrEqual\": \"6.12.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.18.59\",\n                            \"lessThanOrEqual\": \"6.18.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.2.13\",\n                            \"lessThanOrEqual\": \"7.2.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.3\",\n                            \"lessThanOrEqual\": \"*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"original_commit_for_fix\"\n                        }\n                    ]\n                }"}],"metrics":[],"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"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-99136","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-99136","identifiers":["CVE-2026-99136"]},"retained":false,"historicalAffected":[]}],"coverage":[]}