CVE-2026-74686
Received Received - Intake

Race Condition in Linux Kernel rqspinlock

Vulnerability report for CVE-2026-74686, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-08-22

Last updated on: 2026-08-22

Assigner: kernel.org

Description

In the Linux kernel, the following vulnerability has been resolved: rqspinlock: Reset tail when preserving queue on deadlock Currently, the destruction of the waiter queue is suppressed for rqspinlock in cases where a deadlock is detected. Deadlock checks happen relatively frequently (on entry for AA, within 1ms for ABBA), and waiter threads may not be involved in locking scenarios involving deadlocks. Thus, it is useful to not flush the queue and let other waiters take a stab at acquiring the lock after we detect a deadlock and exit. However, we need to follow the same logic as what we did previously for the waitq_timeout label: reset the tail, and if we cannot, signal the next waiter appropriately. In case of deadlocks, this signal would just mark the MCS node as unlocked, and in case of timeouts, it would signal RES_TIMEOUT_VAL. The difference thus is in the value propagated, which decides whether the queue remains active or gets flushed. Not doing the tail reset, and waiting for the next waiter can lead to cases where we are the final waiter, and thus no next waiter arrives, leading to intermittent stalls in this path. Once the next waiter does join, we will be unblocked. In the theoretical case when the next waiter never joins, we risk stalling indefinitely. This can only happen for ABBA deadlocks, since entry into the wait queue is guarded with AA checks. A precise sequence of executions leading up to this scenario can be: CPU 0 holds lock A. CPU 1 holds lock B. CPU 2 attempts lock B, becomes the pending waiter for B. CPU 0 attempts lock B. B has locked+pending bits set, thus CPU 0 queues. CPU 1 attempts lock A. CPU 0 detects an ABBA deadlock. Once deadlock detection happens for CPU 0, it will sit waiting for the next waiter in the queue to populate node->next, which will experience delays until such a waiter arrives. Fix this by adjusting the logic for the check for deadlocks preceding the waitq_timeout label. It would make sense to consolidate code for both cases and use 'ret' to distinguish the value being propagated, but that is left as an exercise for a future refactoring task to avoid diff noise in this patch.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-08-22
Last Modified
2026-08-22
Generated
2026-08-22
AI Q&A
2026-08-22
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
linux linux_kernel *

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-UNKNOWN

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability in the Linux kernel involves a flaw in the rqspinlock mechanism where the tail of a waiter queue is not reset during deadlock detection. This can cause intermittent stalls if no next waiter arrives to signal unlocking, potentially leading to indefinite hangs in ABBA deadlock scenarios.

Detection Guidance

This vulnerability is specific to the Linux kernel's rqspinlock implementation and may manifest as intermittent system stalls during ABBA deadlock scenarios. Detection requires kernel-level monitoring for unusual lock contention patterns or stalls. Check kernel logs for lock-related errors or warnings using commands like dmesg | grep -i lock or journalctl -k | grep -i lock.

Impact Analysis

This vulnerability may cause system freezes or delays in lock acquisition, particularly in high-contention scenarios involving ABBA deadlocks. Systems relying on real-time or critical locking operations could experience performance degradation or unresponsiveness.

Mitigation Strategies

Apply the official Linux kernel patch that resolves this issue. Update your kernel to a version containing the fix for rqspinlock deadlock handling. Monitor system performance for lock contention issues post-update.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-74686. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart