CVE-2026-68438: smp: Make CSD lock acquisition atomic for debug mode
In the Linux kernel, the following vulnerability has been resolved:
smp: Make CSD lock acquisition atomic for debug mode
Commit b0473dcd4b1d ("smp: Improve smpcallfunctionsingle() CSD-lock diagnostics") changed smpcallfunctionsingle() so that, when CSD lock debugging is enabled, async !wait calls use the destination CPU csddata. That improves diagnostics, but it also removes the single-writer property that made the old csdlock() safe: multiple CPUs can now prepare the same destination CPU CSD concurrently.
csdlock() currently waits for CSDFLAGLOCK to clear and then sets the bit with a non-atomic read-modify-write. Two senders can both see an unlocked CSD, set the bit, overwrite the callback fields, and enqueue the same llist node. Re-adding a node that is already the queue head can make node->next point to itself, leaving the target CPU stuck walking callsinglequeue. Later synchronous work, such as a TLB shootdown, can then remain queued and trigger soft-lockup warnings or panics.
Keep the single csdlock() implementation, but when CSD lock debugging is enabled, acquire CSDFLAGLOCK with trycmpxchgacquire(). This makes the destination CPU CSD a real atomic lock in the only configuration where it can be shared by multiple remote senders, while preserving the existing non-debug fast path.
Affected Software
Event History
Frequently Asked Questions
What is the severity of CVE-2026-68438?
The severity of CVE-2026-68438 is rated at risk 48.
What is CVE-2026-68438?
CVE-2026-68438 is a vulnerability in the Linux kernel related to the CSD lock acquisition during debug mode.
How do I fix CVE-2026-68438?
To fix CVE-2026-68438, update your Linux kernel to the latest version where this vulnerability has been resolved.
Who is affected by CVE-2026-68438?
CVE-2026-68438 affects users and systems running vulnerable versions of the Linux kernel with CSD lock debugging enabled.
What are the implications of CVE-2026-68438?
The implications of CVE-2026-68438 include potential instability in systems when CSD lock debugging is enabled, leading to problematic execution in Linux kernel operations.