KernelScan.io

HIGH

rtmutex Waiter UAF

CVE-2026-43499

CVSS 7.8 / 10.0 NVD

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

KernelScan AI7.8HIGH

01

In the Linux kernel, the following vulnerability has been resolved: rtmutex: Use waiter::task instead of current in remove_waiter() remove_waiter() is used by the slowlock paths, but it is also used for proxy-lock rollback in rt_mutex_start_proxy_lock() when invoked from futex_requeue(). In the latter case waiter::task is not current, but remove_waiter() operates on current for the dequeue operation. That results in several problems: 1) the rbtree dequeue happens without waiter::task::pi_lock being held 2) the waiter task's pi_blocked_on state is not cleared, which leaves a dangling pointer primed for UAF around. 3) rt_mutex_adjust_prio_chain() operates on the wrong top priority waiter task Use waiter::task instead of current in all related operations in remove_waiter() to cure those problems. [ tglx: Fixup rt_mutex_adjust_prio_chain(), add a comment and amend the changelog ]

02

Engine v0.2.0

Risk summary

Local attackers with low privileges can exploit a use-after-free vulnerability in the rtmutex subsystem to achieve arbitrary kernel memory corruption. The bug occurs when futex_requeue() triggers proxy-lock rollback, leaving dangling pointers that can be exploited for privilege escalation or system compromise.

Affectedkernel/locking/rtmutex.c (rtmutex)

Vulnerability analysis

The vulnerability stems from remove_waiter() incorrectly using 'current' instead of 'waiter->task' when called from futex_requeue() proxy-lock rollback paths. This causes three critical issues: rbtree dequeue without proper locking, failure to clear pi_blocked_on state leaving dangling pointers primed for UAF, and priority chain operations on the wrong task. The fix ensures waiter->task is used consistently, preventing the use-after-free condition by properly managing task state and locking. Attack surface is local-only, requiring access to futex syscalls which are available to unprivileged users.

03

BranchFixed inPatch commit
6.16.1.175d8cce4773c2b
6.126.12.866d52dfcb2a5d
6.186.18.273fb7394a8377
6.66.6.1408a1fc8d698ac
7.07.0.488614876370a
mainline7.1-rc13bfdc63936dd