
Dieses Repository enthält einen Labor-Validierungsbericht und Erkennungsartefakte für DirtyFrag CVE-2026-43284, ein lokales Linux-Privilegieneskalationsproblem im Zusammenhang mit dem XFRM/ESP-Page-Cache-Schreibpfad. Der Schwerpunkt liegt auf auditd-Telemetrie, Ereigniskorrelation und SOC-orientierter Erkennungslogik.
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:
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.






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
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
euid=0-Ereignis alarmieren; dies erfasst auch legitime sudo-Nutzung.unshare, vmsplice, splice, XFRM/ESP-Aktivität, su und die Erstellung von Root-Prozessen aus einer normalen Benutzersitzung korrelieren.kernel.unprivileged_userns_clone einzuschränken, wo die Anwendungskompatibilität dies erlaubt.lost sollte während Tests und Produktionsüberwachung 0 bleiben.Der gesammelte auditd-Status zeigte lost=2555, was bedeutet, dass einige Audit-Ereignisse verworfen worden sein könnten. Die Schlüsselkette ist weiterhin sichtbar, aber zukünftige Tests sollten den Audit-Backlog erhöhen und vor der Ausführung des PoCs lost=0 bestätigen.
Der Bericht konzentriert sich bewusst auf CVE-2026-43284 / XFRM/ESP, um den SOC-Erkennungsumfang nicht mit anderen DirtyFrag-bezogenen Pfaden zu vermischen.
| 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 |
| 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. |
| 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). |