
Lab-Erkennungsübung für DirtyFrag (CVE-2026-43284) - Linux-Kernel-Privilegieneskalation mittels xfrm-ESP-Seitencache-Korruption. Vollständige Abhandlung über die Ausführung des Exploits, Erkennungslücken und korrigierte EQL-Regeln unter Verwendung des Elastic Stack.
Klassifikation: Internes Lab – CyberLAB
Datum: 24. Mai 2026
Plattform: Elastic Stack v9.4.1
Status: Erkennung bestätigt
Eine kontrollierte Exploitation-Übung, die einen Gegner nach dem ersten Zugriff simuliert, der DirtyFrag (CVE-2026-43284), eine Linux-Kernel-Privilegieneskalations-Schwachstelle, einsetzt. Das simulierte Angreiferszenario: ein niedrig privilegierter Benutzer (saskia, uid=1001), der über Phishing-Anmeldedaten erlangt wurde, versucht, auf Root zu eskalieren auf einem internen Linux-Host. Das Labor verwendete eine absichtlich anfällige Ubuntu-Maschine (ubuntu-vuln, Kernel 6.0.0-22-generic), isoliert von Produktionsnetzwerken.
Der Angreifer erlangte vollen Root-Zugriff (uid=0) in der Laborumgebung. Der Elastic Security Erkennungsstack generierte 3 Alarmmeldungen mit hohem Schweregrad (Risikoscore 73) und identifizierte korrekt die Exploitation-Kette. Allerdings erforderte die Erkennung manuelle Anpassungen – die Standardkonfiguration hatte Lücken, die zu verpassten Alarmen geführt hätten.
Fazit: Nicht gepatchte Linux-Hosts mit Kernel <= 6.x sind angreifbar. Wenn ein Angreifer bereits einen niedrig privilegierten Zugang hat, verschafft dieser Exploit ihnen schnell und lautlos vollen Root-Zugriff, ohne dass eine on-disk Spur für Dateiintegritätstools sichtbar ist.
| Punkt | Detail |
|---|---|
| Schwachstelle | DirtyFrag – CVE-2026-43284 (xfrm-ESP-Pfad), CVE-2026-43500 (RxRPC-Pfad) |
| CVSS-Auswirkung | Vollständige lokale Privilegieneskalation zu Root |
| Betroffene Kernel | Linux-Kernel >= Januar 2017 (9 Jahre Lebensdauer) |
| Betroffene Distributionen | Ubuntu 24.04.4, RHEL 10.1, AlmaLinux 10, openSUSE, CentOS Stream 10, Fedora 44 |
| Umgehung der Dateiintegritätsprüfung | On-disk Dateien unverändert – AIDE, Tripwire, Hash-Überwachung melden alle sauber |
| Öffentlicher PoC | Verfügbar (V4bel/dirtyfrag auf GitHub) |
| Zeit bis Root | < 10 Minuten ab niedrig privilegiertem Zugang |
auditd-Regeln erzeugen keine Beweise. Ohne explizite Syscall-Regeln für socket, splice und unshare läuft der Exploit lautlos ab – keine Logs, keine Alarme. Die Standard-Bereitstellung des Elastic Agents fügt diese Regeln nicht automatisch hinzu.process.parent.pid als Korrelationsschlüssel. In der Praxis erzeugt DirtyFrag Zwischenprozesse, was diese Korrelation aufhebt. Die Lösung – Korrelation über auditd.session – wurde während dieser Übung identifiziert und implementiert./etc/shadow aus, griff auf SSH-Authorized-Keys zu, schrieb einen Persistenz-Marker (/root/pwned.txt) und leitete Netzwerkerkundung über nc ein. All dies geschah innerhalb von 30 Minuten nach dem ersten Zugriff.| Priorität | Maßnahme |
|---|---|
| Sofort | Linux-Kernel auf allen Hosts auf eine behobene Version patchen. Sicherheitshinweise der Anbieter für Ubuntu, RHEL, AlmaLinux, openSUSE, CentOS, Fedora anwenden. |
| Kurzfristig | Explizite auditd-Syscall-Regeln für socket, splice und unshare auf allen Linux-Hosts bereitstellen, die vom Elastic Agent überwacht werden. |
| Kurzfristig | EQL-Erkennungsregeln aktualisieren, sodass sie nach auditd.session anstelle von process.parent.pid für Sequenzen von Namespace-Manipulationen korrelieren. |
| Fortlaufend | Privilegieneskalations-Alarme mit einem Risikoscore >= 73 als hochprioritäre Triage behandeln. Die aktuelle Regel feuert innerhalb von Sekunden nach der Eskalation. |
Zielsetzung: Validierung der Erkennungsabdeckung für DirtyFrag-Exploitation im Heimlabor-SOC, Identifizierung von Erkennungslücken und Erstellung einer korrigierten Erkennungsregel basierend auf beobachtetem Angreiferverhalten.
Bedrohungsmodell: Simulierter Gegner nach erstem Zugriff mit Phishing-Anmeldedaten für ein niedrig privilegiertes Benutzerkonto (saskia, uid=1001). Ziel: Privilegieneskalation zu Root über DirtyFrag unter Verwendung des xfrm-ESP-Empfangspfads. Die Laborausführung erfolgte über die Proxmox-Konsole – funktional äquivalent zu SSH nach Zugriff.
Es wurden zwei Fähigkeitsstufen des Angreifers betrachtet:
Diese Übung deckte die Vanilla-Stufe ab.
DirtyFrag ist der dritte in einer Familie verwandter Linux-Kernel-Fehler, die alle die gleiche Grundursache missbrauchen:
| CVE | Spitzname | Eingeführt | Pfad |
|---|---|---|---|
| CVE-2022-0847 | Dirty Pipe | - | pipe |
| CVE-2026-31431 | Copy Fail | - | splice |
| CVE-2026-43284 | DirtyFrag | Jan. 2017 (Commit cac2661c53f3) | xfrm-ESP |
| CVE-2026-43500 | DirtyFrag | Juni 2023 (Commit 2dc334f1a63a) | RxRPC |
Grundursache: IPv4/IPv6-Datagramm-Anhängepfade setzten SKBFL_SHARED_FRAG nicht, nachdem skb_splice_from_iter() eine Page-Cache-Seite in einen Socket-Puffer (sk_buff) eingefügt hatte. Der ESP-Eingangspfad führte dann In-Place-Kryptografie auf vom Angreifer kontrollierten Page-Cache-Seiten durch und behandelte sie als gewöhnliche ungeklonte nicht-lineare skbs.
Exploit-Primitive: Kontrollierter 4- oder 8-Byte-Schreibzugriff in den Page-Cache. Deterministisch – keine Race-Condition erforderlich.
Exploit-Kette:
/usr/bin/su) in den Page-Cachesplice(), sodass die Seite der Datei in frag[0] von struct sk_buff liegtxfrm-ESP-Entschlüsselungspfadexecve() – geben korrupte Bytes zurückKritische Ausweicheigenschaft: Die Datei auf der Festplatte wird nie verändert. Dateiintegritätsüberwachungstools (AIDE, Tripwire, Hash-Prüfungen) melden alle die Zieldatei als sauber.
Bestätigte anfällige Distributionen: Ubuntu 24.04.4, RHEL 10.1, AlmaLinux 10, openSUSE Tumbleweed, CentOS Stream 10, Fedora 44.