Article
GhostLock: 15 Jahre kritische Linux-Kernel-Lücke in allen Distributionen
Nebula Security hat GhostLock (CVE-2026-43499) veröffentlicht – eine kritische Linux-Kernel-Schwachstelle, die seit Linux 2.6.39 (2011) in jeder Distribution existierte. Der Bug ermöglicht lokale Privilege Escalation und Container Escape ohne besondere Berechtigungen.
Was GhostLock kann
Ein unprivilegierter lokaler Angreifer kann:
- Einen dangling Kernel-Pointer zu Kernel-Stack-Memory erhalten – nur mit regulären Threading-Syscalls
- Einen Pointer zu einer fast beliebigen Adresse schreiben
- Eine Function Table hijacken und Root-Zugriff erlangen
Google hat für die Exploit-Entwicklung $92.337 in kernelCTF bezahlt, bei 97% Stabilität.
Die Ursache
GhostLock wurde mit dem rtmutex-Redesign in 2011 eingeführt und war 15 Jahre unentdeckt. Der Bug in remove_waiter():
// Falsch auf dem Proxy-Pfad
waiter->task = NULL;
Der Code ist auf dem normalen slow path korrekt, wo current der Task ist, der den Waiter besitzt. Auf dem Proxy-Pfad ist current jedoch der Requeuer, nicht der Waiter. Der Waiter lebt auf dem Stack eines Tasks, der in futex_wait() schläft – und der Stack-Frame wird gepoppt, sobald der Task zu Userspace zurückkehrt.
Exploit-Pfad
Der Exploit nutzt:
- Prefetch ASLR Leak: Kernel-Adressen ohne Info-Leak
- CEA Spray: Kernel-Code-Ausführung kontrollieren
- PR_SET_MM_MAP: Gefälschte Waiter-Objekte auf dem Stack
- inet6_protos Hijack: Von Fake-Waiter zu kontrolliertem Write
- DirtyMode: Final Privilege Escalation
Timeline
- 2011: Bug in Linux 2.6.39 eingeführt
- April 2026: Fix in Linux 7.1 (Commit
3bfdc63936dd) - Juli 2026: Öffentliche Disclosure
Was zu tun ist
Alle Linux-Distributionen ohne Patch sind betroffen. Upgrade auf die neueste LTS-Version. Für Systeme, die nicht sofort aktualisiert werden können:
RANDOMIZE_KSTACK_OFFSETaktivieren (erschwert den Exploit)STATIC_USERMODE_HELPERkonfigurieren (begrenzt Privilege Escalation)
Die Lücke zeigt einmal mehr, wie tief Kernel-Bugs sitzen können – 15 Jahre unbemerkt in produktivem Code.