Skip to content

CVE-2026-21231

ntoskrnl.exe -- race condition with improper synchronization allows SYSTEM escalation, actively exploited and added to CISA KEV

Exploited in the Wild

Actively exploited. Added to CISA KEV with remediation deadline March 3, 2026.

Summary

Field Value
Driver ntoskrnl.exe
Vulnerability Class Race Condition
CVSS 7.8
Exploited ITW Yes
Patch Date February 10, 2026

Context

When CISA adds a vulnerability to its Known Exploited Vulnerabilities catalog with a remediation deadline, it means the bug is being actively used in attacks against U.S. federal agencies or their suppliers. CVE-2026-21231 received that designation, joining the small group of ntoskrnl.exe race conditions that have been exploited in the wild alongside CVE-2024-30088 and CVE-2024-38106.

Race conditions in ntoskrnl.exe are among the most challenging kernel bugs to exploit reliably, but they are also among the most valuable. The NT kernel is the most privileged component in the Windows security model, and a race condition that corrupts kernel memory provides a primitive that bypasses all user-mode and kernel-mode mitigations. The difficulty of exploitation is offset by the value of the result.

Root Cause

The vulnerability is a CWE-362 concurrent execution issue: a shared kernel resource lacks proper synchronization, allowing two or more threads to access it simultaneously without the necessary locking. When the attacker wins the race, the concurrent access corrupts the kernel resource's state, leading to memory corruption.

The specific resource and synchronization primitive have not been publicly disclosed. Based on the pattern of ntoskrnl.exe race conditions in this corpus, the bug likely involves a TOCTOU (time-of-check-time-of-use) gap where the kernel validates a parameter, releases a lock, and then uses the parameter. Between the lock release and the use, an attacker thread modifies the validated value.

sequenceDiagram
    participant T1 as Thread 1 (Attacker)
    participant K as Kernel Resource
    participant T2 as Thread 2 (Attacker)

    rect rgb(30, 41, 59)
    T1->>K: Validate parameter (check)
    Note over K: Lock released
    T2->>K: Modify shared state
    T1->>K: Use parameter (use) -- now stale
    Note over K: Memory corruption
    end

Exploitation

The attacker spawns multiple threads that race against the shared kernel resource. Each thread performs operations that compete for the same kernel state, attempting to win the race and corrupt memory. Reliable exploitation of kernel race conditions typically requires careful timing, often achieved through CPU affinity pinning and priority manipulation to maximize the probability of hitting the race window.

Once the race is won, the corrupted kernel state provides a memory corruption primitive. The attacker uses this to modify kernel data structures for privilege escalation, ultimately achieving SYSTEM.

Exploitation Primitive

Race condition on shared kernel resource --> memory corruption --> SYSTEM

Broader Significance

CVE-2026-21231 is the third ntoskrnl.exe race condition exploited in the wild in two years. This pattern suggests that attackers have developed reliable techniques for winning kernel race conditions, which were historically considered too unreliable for production exploits. The addition to CISA KEV confirms that race condition exploitation has matured from a research curiosity to a practical attack technique used in real intrusions.

References