CVE-2026-31555 futex: Clear stale exiting pointer in futex_lock_pi() retry path

Medium 5.5 Published Updated

A stale pointer in the Linux kernel futex retry path can cause a warning and potential crash, requiring a kernel patch.

Exploited in the wild
Not known
Login needed
Any signed-in user
Attackable
Local or same network only
Victim action needed
Not needed
Fix
Available

What is CVE-2026-31555?

CVE-2026-31555 is a medium-severity vulnerability in Linux kernel, published on 24 Apr 2026. It can only be exploited from the same machine or local network, with no action from the victim.

Official description

In the Linux kernel, the following vulnerability has been resolved:

futex: Clear stale exiting pointer in futex_lock_pi() retry path

Fuzzying/stressing futexes triggered:

WARNING: kernel/futex/core.c:825 at wait_for_owner_exiting+0x7a/0x80, CPU#11: futex_lock_pi_s/524

When futex_lock_pi_atomic() sees the owner is exiting, it returns -EBUSY and stores a refcounted task pointer in 'exiting'.

After wait_for_owner_exiting() consumes that reference, the local pointer is never reset to nil. Upon a retry, if futex_lock_pi_atomic() returns a different error, the bogus pointer is passed to wait_for_owner_exiting().

CPU0 CPU1 CPU2 futex_lock_pi(uaddr) // acquires the PI futex exit() futex_cleanup_begin() futex_state = EXITING; futex_lock_pi(uaddr) futex_lock_pi_atomic() attach_to_pi_owner() // observes EXITING *exiting = owner; // takes ref return -EBUSY wait_for_owner_exiting(-EBUSY, owner) put_task_struct(); // drops ref // exiting still points to owner goto retry; futex_lock_pi_atomic() lock_pi_update_atomic() cmpxchg(uaddr) *uaddr ^= WAITERS // whatever // value changed return -EAGAIN; wait_for_owner_exiting(-EAGAIN, exiting) // stale WARN_ON_ONCE(exiting)

Fix this by resetting upon retry, essentially aligning it with requeue_pi.

Which versions are affected by CVE-2026-31555?

It affects 1 product.

Products include Linux kernel.

How do I fix CVE-2026-31555?

Apply the vendor's patch.

Is CVE-2026-31555 being exploited?

There is no known exploitation of CVE-2026-31555 in the wild and no public exploit code.

All Linux kernel vulnerabilities

Sources

Also known as AZL-83633, BELL-CVE-2026-31555, DEBIAN-CVE-2026-31555, GHSA-58x2-94x2-vr83, ROOT-OS-DEBIAN-11-CVE-2026-31555, ROOT-OS-DEBIAN-12-CVE-2026-31555 and 4 more.

Is CVE-2026-31555 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free