Cloudanix VulnDB

CVE-2026-99169

None

CVSS

—

EPSS

0.2%

Published

Oct 28, 2026

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A Linux kernel synchronization bug could cause multi-threaded programs to receive the wrong signals between threads, leading to unexpected hangs or coordination failures.

Exploitation
Local Privilege
Attacker needs
Local User
Complexity
Moderate
Impact
Denial Of Service
Component
OS kernel
Class
Race Condition
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

FUT_OFF_MMSHARED futex waiters keyed only by MM address can receive wakeups intended for a different MM after address reuse, because a FUT_OFF_INODE waiter can be requeued onto a FUT_OFF_MMSHARED futex by another process.

Why it matters to the business

Multi-threaded applications that rely on futex-based synchronization may experience missed or spurious wakeups, leading to hangs, incorrect thread coordination, or unpredictable behavior in containerized or high-density Linux environments.

How an attack unfolds

An attacker with local access creates processes that requeue futex waiters from inode-based to MM-shared keys, then triggers MM reuse so that a waiter on a freed MM consumes a wakeup meant for a newly allocated MM at the same address; the unique 64-bit per-MM ID fix prevents this cross-MM wakeup misdelivery.

How to fix it

Apply the upstream kernel commit that keys FUT_OFF_MMSHARED futexes with a unique 64-bit per-MM identifier; rebuild and deploy the patched kernel, leaving private futex paths unchanged for performance.

How to confirm the fix worked

Confirm the patch is present by inspecting the futex keying logic for FUT_OFF_MMSHARED; run targeted futex requeue and MM reuse stress tests to verify no cross-MM wakeup leakage occurs.

Typical attack path

  1. Obtain local unprivileged access on a Linux system
  2. Create multiple processes and use futex requeue operations to move waiters onto FUT_OFF_MMSHARED keys
  3. Force MM release and rapid reallocation to reuse the same virtual address
  4. Deliver wakeups to the new MM while the old waiter is still blocked
  5. Observe incorrect wakeup consumption or synchronization failure

How to detect it

Examine kernel logs and audit trails for unusual futex-related warnings or scheduler anomalies around process exit and MM reuse; no public exploit artifacts are known.

What your security team should do

  • Prioritize kernel updates on multi-tenant and container hosts within the next patch cycle
  • Monitor upstream stable branches for backports of the per-MM ID change
  • Review any custom futex-using workloads for exposure to MM reuse patterns

The record

In the Linux kernel, the following vulnerability has been resolved: futex: Fix mm reuse handling for FUT_OFF_MMSHARED A FUT_OFF_MMSHARED futex is a shared futex that refers to an MM. It is possible for a process to wait on a shared futex with a different MM because a FUT_OFF_INODE waiter can be requeued onto a FUT_OFF_MMSHARED futex by another process. This can cause FUT_OFF_MMSHARED waiters on a freed MM to consume wakeups intended for a newly allocated MM at the same address. Fix it by keying FUT_OFF_MMSHARED using a unique 64-bit per-MM ID. Leave private futexes as before to avoid influencing the performance of the hotpath. (Multi-threaded processes typically implicitly use FUT_OFF_MMSHARED by setting clear_child_tid such that it points into anonymous memory, which causes mm_release() in a multi-threaded mm to perform FUTEX_WAKE.)

Affected packages

Ecosystem Package Introduced Fixed