
Esercizio di rilevamento in laboratorio per DirtyFrag (CVE-2026-43284) - escalation dei privilegi del kernel Linux tramite corruzione della cache delle pagine xfrm-ESP. Resoconto completo che copre l'esecuzione dell'exploit, le lacune di rilevamento e le regole EQL corrette utilizzando Elastic Stack
Classificazione: Lab Interno - CyberLAB
Data: 24 Maggio 2026
Piattaforma: Elastic Stack v9.4.1
Stato: Rilevamento Confermato
Un esercizio controllato di sfruttamento che simula un avversario con accesso iniziale che utilizza DirtyFrag (CVE-2026-43284), una vulnerabilità di escalation dei privilegi del kernel Linux. Lo scenario dell'attaccante simulato: un utente a bassi privilegi (saskia, uid=1001) ottenuto tramite credenziali phishing tenta di elevare i privilegi a root su un host Linux interno. Il laboratorio ha utilizzato una macchina Ubuntu deliberatamente vulnerabile (ubuntu-vuln, kernel 6.0.0-22-generic) isolata dalle reti di produzione.
L'attaccante ha ottenuto accesso root completo (uid=0) nell'ambiente di laboratorio. Lo stack di rilevamento Elastic Security ha generato 3 avvisi di gravità ALTA (punteggio di rischio 73) identificando correttamente la catena di sfruttamento. Tuttavia, il rilevamento ha richiesto una regolazione manuale - la configurazione predefinita presentava lacune che avrebbero portato a mancati avvisi.
In conclusione: Gli host Linux non patchati con kernel <= 6.x sono vulnerabili. Se un attaccante ha già un punto d'appoggio a bassi privilegi, questo exploit gli concede silenziosamente e rapidamente root completo, senza lasciare tracce su disco visibili agli strumenti di integrità dei file.
| Elemento | Dettaglio |
|---|---|
| Vulnerabilità | DirtyFrag - CVE-2026-43284 (percorso xfrm-ESP), CVE-2026-43500 (percorso RxRPC) |
| Impatto CVSS | Escalation locale completa dei privilegi a root |
| Kernel interessati | Kernel Linux >= Gennaio 2017 (durata 9 anni) |
| Distribuzioni interessate | Ubuntu 24.04.4, RHEL 10.1, AlmaLinux 10, openSUSE, CentOS Stream 10, Fedora 44 |
| Bypass integrità file | File su disco invariati - AIDE, Tripwire, monitoraggio hash segnalano tutti puliti |
| PoC pubblico | Disponibile (V4bel/dirtyfrag su GitHub) |
| Tempo per root | < 10 minuti da un punto d'appoggio a bassi privilegi |
auditd non producono alcuna evidenza. Senza regole esplicite di syscall per socket, splice e unshare, l'exploit viene eseguito silenziosamente - nessun log, nessun avviso. La distribuzione predefinita di Elastic Agent non aggiunge automaticamente queste regole.process.parent.pid come chiave di correlazione. In pratica, DirtyFrag genera processi intermedi, rompendo tale correlazione. La correzione - correlare tramite auditd.session - è stata identificata e implementata durante questo esercizio./etc/shadow, ha avuto accesso alle chiavi autorizzate SSH, ha scritto un marcatore di persistenza (/root/pwned.txt) e ha avviato ricognizione di rete tramite nc. Tutto è avvenuto entro 30 minuti dall'accesso iniziale.| Priorità | Azione |
|---|---|
| Immediata | Patchare il kernel Linux a una versione corretta su tutti gli host. Applicare gli avvisi di sicurezza del vendor per Ubuntu, RHEL, AlmaLinux, openSUSE, CentOS, Fedora. |
| Breve termine | Distribuire regole esplicite di syscall auditd per socket, splice e unshare su tutti gli host Linux monitorati da Elastic Agent. |
| Breve termine | Aggiornare le regole di rilevamento EQL per correlare tramite auditd.session anziché process.parent.pid per le sequenze di manipolazione dei namespace. |
| In corso | Trattare gli avvisi di escalation dei privilegi con punteggio di rischio >= 73 come triage ad alta priorità. La regola corrente si attiva entro secondi dall'escalation. |
Obiettivo: Validare la copertura di rilevamento per lo sfruttamento di DirtyFrag nel SOC del laboratorio domestico, identificare le lacune di rilevamento e produrre una regola di rilevamento corretta basata sul comportamento osservato dell'attaccante.
Modello di minaccia: Avversario simulato con accesso iniziale tramite credenziali phishing per un account utente a bassi privilegi (saskia, uid=1001). Obiettivo: escalation dei privilegi a root tramite DirtyFrag utilizzando il percorso di ricezione xfrm-ESP. Esecuzione in laboratorio effettuata tramite console Proxmox - funzionalmente equivalente all'accesso post-SSH.
Sono stati considerati due livelli di capacità dell'attaccante:
Questo esercizio ha coperto il livello vanilla.
DirtyFrag è il terzo di una famiglia di bug correlati del kernel Linux che abusano tutti della stessa causa principale:
| CVE | Soprannome | Introdotto | Percorso |
|---|---|---|---|
| CVE-2022-0847 | Dirty Pipe | - | pipe |
| CVE-2026-31431 | Copy Fail | - | splice |
| CVE-2026-43284 | DirtyFrag | Gen 2017 (commit cac2661c53f3) | xfrm-ESP |
| CVE-2026-43500 | DirtyFrag | Giu 2023 (commit 2dc334f1a63a) | RxRPC |
Causa principale: I percorsi di append dei datagrammi IPv4/IPv6 non impostavano SKBFL_SHARED_FRAG dopo che skb_splice_from_iter() aveva inserito una pagina della cache delle pagine in un buffer di socket (sk_buff). Il percorso di input ESP eseguiva quindi una crittografia in-place sulle pagine della cache delle pagine controllate dall'attaccante, trattandole come normali skb non lineari non clonate.
Primitiva di sfruttamento: scrittura controllata di 4 o 8 byte nella cache delle pagine. Deterministica - non richiede condizione di race.
Catena di sfruttamento:
/usr/bin/su) nella cache delle paginesplice() in modo che la pagina del file si trovi in frag[0] di struct sk_buffxfrm-ESPexecve() del kernel - restituiscono byte corrottiProprietà critica di elusione: Il file su disco non viene mai modificato. Gli strumenti di monitoraggio dell'integrità dei file (AIDE, Tripwire, controlli hash) segnalano tutti il file bersaglio come pulito.
Distribuzioni vulnerabili confermate: Ubuntu 24.04.4, RHEL 10.1, AlmaLinux 10, openSUSE Tumbleweed, CentOS Stream 10, Fedora 44.