
Laborvalidierungsbericht und Erkennungsartefakte für CVE-2026-43284 (DirtyFrag) Linux LPE. Bietet auditd-Telemetrie, Ereigniskorrelationsregeln und SOC-orientierte Erkennungslogik für den XFRM/ESP-Page-Cache-Schreibpfad.
Umfang: Validierung der Linux Local Privilege Escalation (LPE) mit Fokus auf den XFRM/ESP-Pfad im Zusammenhang mit CVE-2026-43284.
Dieses Repository enthält einen englischen Bericht und Beweisartefakte aus einer kontrollierten Laborvalidierung des öffentlichen DirtyFrag-PoCs. Der Schwerpunkt liegt nicht auf einer Exploit-Anleitung, sondern darauf, zu dokumentieren, was in den Linux-Audit-Logs sichtbar war und wie diese Ereignisse in praktische SOC-Erkennungslogik umgewandelt werden können.
Vollständiger PDF-Bericht:
EN: reports/DirtyFrag_CVE-2026-43284_EN.pdf
PL: reports/DirtyFrag_CVE-2026-43284_PL.pdf
Der Test wurde durchgeführt, um zu überprüfen, ob ein normaler lokaler Benutzer in einer verwundbaren Labor-VM eine Root-Shell erhalten kann, und um festzustellen, welche Ereignisse mit auditd erfasst werden können.
CVE-2026-43284 betrifft die unsachgemäße Behandlung gemeinsamer Seitenfragmente während ESP/IPsec-Operationen. Unter bestimmten Bedingungen kann ein lokaler Angreifer Daten im Page-Cache beeinflussen und Privilegien erweitern. Ubuntu Security stuft diese Schwachstelle als CVSS 3.1: 7.8 High ein.
| Schwachstelle | Umfang | Komponente | CVSS |
|---|---|---|---|
| CVE-2026-43284 | XFRM/ESP Page-Cache-Write | XFRM / ESP, esp4/esp6 | 7.8 High |
Technische Referenzen:
| Parameter | Wert |
|---|---|
| Distribution | Ubuntu 24.04.4 LTS / noble |
| Testkernel | 6.17.0-23-generic |
| Architektur | x86_64 |
| Virtualisierung | Oracle VirtualBox |
| CPU | 12th Gen Intel(R) Core(TM) i5-12450H, 1 vCPU |
| RAM | 12 GiB |
| Root-Dateisystem | ext4 |
| Testbenutzer | uid=1000(user), gid=1000(user), Gruppen umfassen sudo, adm, lpadmin |
| unprivileged_userns_clone | 1 |
| auditd | aktiv, DirtyFrag/LPE-Auditregeln geladen |
| AppArmor | aktiv; unprivileged_userns-Profil in Logs sichtbar |
Vollständige Systembasislinie: evidence/logs/system-info-table.md
Vor der PoC-Ausführung war der Testkontext ein normales Benutzerkonto. Nach Ausführung von ./exp wurde eine Root-Shell erhalten und mit whoami und id bestätigt.

Nach dem Test wurden auditd-Logs und Zusammenfassungsausgaben in ein lokales Beweisverzeichnis exportiert und in dieses Repository kopiert.






| Pfad | Beschreibung |
|---|---|
docs/DirtyFrag_CVE-2026-43284_auditd_detection_report.docx | Englischer DOCX-Bericht. |
evidence/logs/audit.log | Vollständiges auditd-Log mit Roh-Ereignissen. |
evidence/logs/dirtyfrag-filtered.log | Gefiltertes Log mit DirtyFrag/LPE-bezogenen Ereignissen. |
evidence/logs/dirty_frag_vmsplice.log | vmsplice-Ereignisse des PoC-Prozesses. |
evidence/logs/dirty_frag_splice.log | splice-Ereignisse des PoC-Prozesses. |
evidence/logs/dirty_frag_execve_su.log | Ausführung von /usr/bin/su nach der PoC-Aktivität. |
evidence/logs/lpe_root_exec_from_user_session.log | Prozesse, die aus der ursprünglichen Benutzersitzung als Root ausgeführt wurden. |
evidence/logs/audit-key-summary.txt | Ereigniszählungs-Zusammenfassung nach auditd-Key. |
evidence/logs/audit-exec-summary.txt | Ausführungszusammenfassung von aureport. |
evidence/logs/audit-rules-loaded.txt | Aktive auditd-Erkennungsregeln. |
evidence/logs/system-info-table.md | System-Basislinientabelle. |
evidence/screenshots/01-dirtyfrag-root-shell.png | Screenshot, der den Benutzer-zu-Root-Shell-Übergang bestätigt. |
tools/generate-system-info-table.sh | Hilfsskript zur Erzeugung der Systeminformationstabelle. |
Die nützlichste Erkennung ist kein einzelnes Ereignis. Das stärkste Signal ist die gesamte Kette, die in einem kurzen Zeitfenster beobachtet wird:
user namespace -> vmsplice/splice -> ESP/XFRM -> su -> root shell with AUID of a normal user
| Key | Bedeutung |
|---|---|
dirty_frag_unshare | unshare, ausgeführt von einem unprivilegierten Benutzer; weist auf die Vorbereitung eines User-Namespace hin. |
dirty_frag_vmsplice | vmsplice-Aktivität von einem Benutzerprozess; Hauptsignal im Page-Cache. |
dirty_frag_splice | splice-Aktivität von einem Benutzerprozess; mit vmsplice korreliert. |
dirty_frag_su_exec / dirty_frag_execve_su | Ausführung von /usr/bin/su nach der Page-Cache-Phase. |
lpe_root_exec_from_user_session | execve mit euid=0 in einer Sitzung, die auid>=1000 gehört; starker LPE-Beleg, wenn korreliert. |
| Zeit | Ereignis | Artefakt | Bedeutung |
|---|---|---|---|
| 21:10:48 | auditd-Regeln geladen | audit-rules-loaded.txt, audit.log | Die Überwachung war vor der PoC-Ausführung aktiv. |
| 21:11:32 | unshare durch ./exp | dirtyfrag-filtered.log | Der Benutzerprozess trat in unprivileged_userns ein. |
| 21:11:32-21:11:39 | vmsplice / splice durch ./exp | dirty_frag_vmsplice.log, dirty_frag_splice.log | Page-Cache-Verhalten über Syscall-Telemetrie sichtbar. |
| 21:11:32-21:11:39 | MAC_IPSEC_EVENT / XFRM ESP | audit.log | SAD-add- und SA-icv-failure-Ereignisse auf 127.0.0.1 mit SPI 0xdeadbeXX. |
| 21:11:39 | su - | dirty_frag_execve_su.log | Versuch, nach der PoC-Ausführung eine Root-Shell zu betreten. |
| 21:11:39 | sh / dash als Root | lpe_root_exec_from_user_session.log | UID=root und EUID=root, während AUID=user. |
| 21:11:48 | whoami als Root | lpe_root_exec_from_user_session.log, Screenshot | Manuelle Bestätigung der erfolgreichen Privilegienausweitung. |
| 21:11:49 | id als Root | lpe_root_exec_from_user_session.log, Screenshot | Manuelle Bestätigung von uid=0(root). |
IF
dirty_frag_unshare by auid>=1000
AND count(dirty_frag_vmsplice + dirty_frag_splice by same exe or pid) >= 3 within 600s
AND MAC_IPSEC_EVENT / XFRM activity within 1200s
AND (dirty_frag_su_exec OR execve with euid=0 and auid>=1000) within 1200s
THEN
alert = "Possible DirtyFrag CVE-2026-43284 Linux LPE"
severity = high/critical