
Report di validazione di laboratorio e artefatti di rilevamento per CVE-2026-43284 (DirtyFrag) LPE Linux. Fornisce telemetria auditd, regole di correlazione eventi e logica di rilevamento orientata al SOC per il percorso di scrittura page-cache XFRM/ESP.
Ambito: Verifica di escalation locale dei privilegi (LPE) su Linux incentrata sul percorso XFRM/ESP associato a CVE-2026-43284.
Questo repository contiene un report in inglese e artefatti di prova da una validazione di laboratorio controllata del PoC pubblico DirtyFrag. L'attenzione non è sulla fornitura di una guida allo sfruttamento, ma sulla documentazione di ciò che era visibile nei log di audit di Linux e su come questi eventi possono essere trasformati in logiche pratiche di rilevamento per i SOC.
Full PDF report:
EN: reports/DirtyFrag_CVE-2026-43284_EN.pdf
PL: reports/DirtyFrag_CVE-2026-43284_PL.pdf
Il test è stato eseguito per verificare se un normale utente locale potesse ottenere una shell di root in una VM di laboratorio vulnerabile e per determinare quali eventi possono essere catturati con auditd.
CVE-2026-43284 riguarda la gestione impropria dei frammenti di pagina condivisi durante le operazioni ESP/IPsec. In condizioni specifiche, un attaccante locale può influenzare i dati nella cache delle pagine ed escalare i privilegi. Ubuntu Security classifica questa vulnerabilità come CVSS 3.1: 7.8 Alta.
| Vulnerabilità | Ambito | Componente | CVSS |
|---|---|---|---|
| CVE-2026-43284 | Scrittura cache pagine XFRM/ESP | XFRM / ESP, esp4/esp6 | 7.8 Alta |
Technical references:
| Parametro | Valore |
|---|---|
| Distribuzione | Ubuntu 24.04.4 LTS / noble |
| Kernel di test | 6.17.0-23-generic |
| Architettura | x86_64 |
| Virtualizzazione | Oracle VirtualBox |
| CPU | 12th Gen Intel(R) Core(TM) i5-12450H, 1 vCPU |
| RAM | 12 GiB |
| Filesystem root | ext4 |
| Utente di test | uid=1000(user), gid=1000(user), gruppi includono sudo, adm, lpadmin |
| unprivileged_userns_clone | 1 |
| auditd | attivo, regole di audit DirtyFrag/LPE caricate |
| AppArmor | attivo; profilo unprivileged_userns visibile nei log |
Baseline completa del sistema: evidence/logs/system-info-table.md
Prima dell'esecuzione del PoC, il contesto di test era un account utente normale. Dopo aver eseguito ./exp, è stata ottenuta una shell di root e confermata con whoami e id.







| Percorso | Descrizione |
|---|---|
docs/DirtyFrag_CVE-2026-43284_auditd_detection_report.docx | Report DOCX in inglese. |
evidence/logs/audit.log | Log completo di auditd contenente eventi grezzi. |
evidence/logs/dirtyfrag-filtered.log | Log filtrato contenente eventi correlati a DirtyFrag/LPE. |
evidence/logs/dirty_frag_vmsplice.log | Eventi vmsplice dal processo PoC. |
evidence/logs/dirty_frag_splice.log | Eventi splice dal processo PoC. |
evidence/logs/dirty_frag_execve_su.log | Esecuzione di /usr/bin/su dopo l'attività PoC. |
evidence/logs/lpe_root_exec_from_user_session.log | Processi eseguiti come root dalla sessione utente originale. |
evidence/logs/audit-key-summary.txt | Riepilogo conteggio eventi per chiave auditd. |
evidence/logs/audit-exec-summary.txt | Riepilogo eseguibili da aureport. |
evidence/logs/audit-rules-loaded.txt | Regole di rilevamento auditd attive. |
evidence/logs/system-info-table.md | Tabella baseline di sistema. |
evidence/screenshots/01-dirtyfrag-root-shell.png | Screenshot che conferma la transizione utente -> shell di root. |
tools/generate-system-info-table.sh | Script di supporto utilizzato per generare la tabella delle informazioni di sistema. |
Il rilevamento più utile non è un singolo evento. Il segnale più forte è la catena completa osservata in una breve finestra temporale:
namespace utente -> vmsplice/splice -> ESP/XFRM -> su -> shell di root con AUID di un utente normale
| Chiave | Significato |
|---|---|
dirty_frag_unshare | unshare eseguito da un utente non privilegiato; indica la preparazione del namespace utente. |
dirty_frag_vmsplice | Attività vmsplice da un processo utente; segnale principale della cache delle pagine. |
dirty_frag_splice | Attività splice da un processo utente; correlata con vmsplice. |
dirty_frag_su_exec / dirty_frag_execve_su | Esecuzione di /usr/bin/su dopo la fase di cache delle pagine. |
lpe_root_exec_from_user_session | execve con euid=0 in una sessione di proprietà di auid>=1000; forte prova di LPE se correlata. |
| Ora | Evento | Artefatto | Significato |
|---|---|---|---|
| 21:10:48 | Regole auditd caricate | audit-rules-loaded.txt, audit.log | Il monitoraggio era attivo prima dell'esecuzione del PoC. |
| 21:11:32 | unshare da ./exp | dirtyfrag-filtered.log | Il processo utente è entrato in unprivileged_userns. |
| 21:11:32-21:11:39 | vmsplice / splice da ./exp | dirty_frag_vmsplice.log, dirty_frag_splice.log | Comportamento della cache delle pagine visibile tramite telemetria delle syscall. |
| 21:11:32-21:11:39 | MAC_IPSEC_EVENT / XFRM ESP | audit.log | Eventi SAD-add e SA-icv-failure su 127.0.0.1 con SPI 0xdeadbeXX. |
| 21:11:39 | su - | dirty_frag_execve_su.log | Tentativo di entrare in una shell di root dopo l'esecuzione del PoC. |
| 21:11:39 | sh / dash come root | lpe_root_exec_from_user_session.log | UID=root e EUID=root mentre AUID=user. |
| 21:11:48 | whoami come root | lpe_root_exec_from_user_session.log, screenshot | Conferma manuale dell'escalation riuscita. |
| 21:11:49 | id come root | lpe_root_exec_from_user_session.log, screenshot | Conferma manuale di uid=0(root). |
SE
dirty_frag_unshare da auid>=1000
E conteggio(dirty_frag_vmsplice + dirty_frag_splice per stesso exe o pid) >= 3 entro 600s
E attività MAC_IPSEC_EVENT / XFRM entro 1200s
E (dirty_frag_su_exec OPPURE execve con euid=0 e auid>=1000) entro 1200s
ALLORA
alert = "Possibile LPE Linux DirtyFrag CVE-2026-43284"
severity = alta/critica