← News
/DISPATCH · 2026-07-30

GhostLock CVE-2026-43499: 15-year Linux kernel privilege-escalation bug, high container-escape risk

Nebula Security disclosed GhostLock, a 15-year stack UAF in the Linux kernel rtmutex subsystem. A local unprivileged user can escalate to root and escape containers. Exploit success rate 97%. PoC is public.

On 7 July 2026, Nebula Security disclosed a high-severity local privilege-escalation bug that sat in the Linux kernel for 15 years. CVE-2026-43499. Named GhostLock. It lives in `remove_waiter()` in the rtmutex (realtime mutex) subsystem. Classic stack use-after-free. A local unprivileged user can escalate to root and escape containers.

Overview

GhostLock landed in Linux 2.6.39 (May 2011). It hits nearly every mainstream distro through 7.1. Found by Nebula Security's AI-driven fuzzer VEGA, not manual audit.

Root cause is a logic bug in `remove_waiter()` on the FUTEX_CMP_REQUEUE_PI proxy-lock rollback path. The function should clear the current thread's waiter state. On proxy-lock rollback it instead mutates the requeue initiator's `pi_blocked_on`. The real waiter's `pi_blocked_on` still points at its freed kernel stack frame. Dangling pointer.

Technical details

How it works

After proxy lock fails and rolls back, the sleeping waiter wakes and returns to userspace. The `rt_mutex_waiter` on its kernel stack is freed with the stack frame. That thread's `pi_blocked_on` still points at the freed stack. Next kernel entry reuses the stack. Kernel walks `pi_blocked_on` into the waiter struct. UAF.

Exploit chain

Nebula's public exploit chain has four stages. ~5 seconds. 97% success:

Scope

Impact

| Dimension | Assessment | |-----------|------------| | CVSS 3.1 | 7.8 High | | Attack vector | Local | | Attack complexity | Low | | Exploit stability | 97% (Nebula test data) | | PoC/EXP | Public |

Risk scenarios

Mitigation

Official patch

Upstream fixed it in commit `3bfdc63936dd`. All `current` operations in `remove_waiter()` now use `waiter->task`. Distros have shipped updates:

Note: the April 2026 initial patch introduced a follow-on bug, CVE-2026-53166. Install the final fix shipped after July.

Temporary mitigations

References