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.
Published: 2026-10-28
Score: n/a
EPSS: n/a
KEV: No
Impact: Incorrect success status reporting leading to potential data integrity issues
Action: Apply update
AI Analysis

Impact

A race condition in the Linux dm-crypt subsystem occurs when the function crypt_dec_pending reads the I/O error status before decrementing a reference counter. Because the operation may be interrupted, a stale error value can remain and cause a failed read or write to be reported as successful. This improper status reporting can lead to data integrity problems or mis‑trust in the encryption layer. The weakness is a classic race condition (CWE-362).

Affected Systems

All versions of the Linux kernel that contain the dm‑crypt module prior to the fix commit are affected. The specific affected releases are not enumerated in the advisory, but the issue applies to any kernel using the legacy dm‑crypt implementation.

Risk and Exploitability

The CVSS score is not provided and the EPSS score is unavailable, so the precise exploitation probability is unknown. The vulnerability is internal to the kernel and does not grant a malicious user direct code execution or privilege escalation. Exploitation would require deliberate manipulation of concurrent I/O operations on an encrypted device and is therefore considered a moderate risk for systems that rely on accurate error reporting. The issue is not listed in the CISA KEV catalog, indicating that no widespread incidents have been reported.

Generated by OpenCVE AI on October 28, 2026 at 11:39 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply a kernel update that includes the dm‑crypt race condition fix.
  • Check system logs for any instances where encrypted I/O reports success after failure and remediate corresponding data integrity issues.
  • If an immediate update is not feasible, schedule maintenance to upgrade the kernel when operational constraints allow, and consider reducing concurrent cryptographic I/O to lower the chance of the race condition.

Generated by OpenCVE AI on October 28, 2026 at 11:39 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 28 Oct 2026 14:30:00 +0000

Type Values Removed Values Added
First Time appeared Linux linux
Vendors & Products Linux linux

Wed, 28 Oct 2026 12:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362

Wed, 28 Oct 2026 10:45:00 +0000

Type Values Removed Values Added
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.
Title dm-crypt: fix a tiny race condition in crypt_dec_pending
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-28T10:34:48.558Z

Reserved: 2026-09-25T10:25:14.395Z

Link: CVE-2026-99136

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-28T11:17:33.513

Modified: 2026-10-28T11:17:33.513

Link: CVE-2026-99136

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-28T14:15:18Z

Weaknesses
  • CWE-362

    Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')