
Scanner e patcher automatizzato basato su SSH per le vulnerabilità LPE del kernel Linux CVE-2026-43284 e CVE-2026-43500, con scoperta multi-host, rilevamento dell'escalation dei privilegi e mitigazione tramite blacklist dei moduli.
Disclaimer: Questo strumento è progettato esclusivamente per audit di sicurezza interni legittimi. L'uso senza autorizzazione su sistemi che non ti appartengono è una violazione. Sviluppato da Gagaltotal666 - GhostGTR666.
Questo strumento identifica e mitiga due vulnerabilità di Local Privilege Escalation (LPE) nel kernel Linux:
f4c50a4034e6 del 2026-05-05)/etc/modprobe.d/| Funzionalità | Descrizione |
|---|---|
| Scanner Multi-Host | Scansione di intere sottoreti (CIDR) o elenchi di IP specifici in parallelo |
| TCP Ping Discovery | Rilevamento automatico degli host attivi prima della SSH (disattivabile con --skip-discovery) |
| Audit Approfondito | Analisi della versione del kernel, stato dei moduli, patch upstream, livello di privilegio |
| Valutazione delle Vulnerabilità | Classificazione automatica dello stato: VULNERABLE, MITIGATED, LIKELY_PATCHED, POSSIBLY_SAFE, MODULE_NOT_LOADED |
| Mitigazione Automatica | Blacklist dei moduli, unload e flush della page-cache con un singolo --patch |
| Iniezione Sudo Zero-Touch | Iniezione automatica della password tramite sudo -S — nessuna configurazione NOPASSWD richiesta |
| Rilevamento Autenticazione Intelligente | Rilevamento automatico dell'escalation dei privilegi (root, sudo NOPASSWD, sudo con password) |
| Validazione CLI | Pre-controllo dei refusi, validazione dei file di chiave SSH (previene known_hosts falsi) |
| Esecuzione Parallela | Thread pool per scansioni e operazioni SSH (default 20 worker) |
| Report JSON | Esportazione dei risultati completi dell'audit in formato JSON |
| Output Formattato | Output colorato + riepilogo PrettyTable (fallback automatico se la libreria non è disponibile) |
| Gestione dei Segnali | Arresto graduale tramite SIGINT/SIGTERM |
Python 3.8 o superiore
Librerie: paramiko, colorama, prettytable
python3 -m venv .venv
source .venv/bin/activate
# Clona il repository
git clone https://github.com/gagaltotal/dirtyfrag-scanner.git
cd dirtyfrag-scanner
# Installa le dipendenze
pip install -r requirements.txt
# oppure
pip install paramiko colorama prettytable

Rileva le vulnerabilità senza modificare nulla sul server di destinazione.
# Utilizzo con Password
python3 dirtyfrag_scanner.py --subnet 192.168.1.0/24 --user ghostgtr666 --password 'server@02!'
# Utilizzo con Chiave SSH
python3 dirtyfrag_scanner.py --subnet 10.134.205.0/24 --user root --key ~/.ssh/id_rsa
# Utilizzo di entrambi (fallback password se la chiave fallisce)
python3 dirtyfrag_scanner.py --subnet 192.168.1.0/24 --user admin --password 'pass' --key ~/.ssh/id_rsa
# Scansione IP Specifici (senza discovery)
python3 dirtyfrag_scanner.py --hosts 192.168.1.10,192.168.1.20 --user admin --password 'pass'
Esegue l'audit e applica direttamente la mitigazione sui server vulnerabili.
# Patch con Password (INIEZIONE SUDO AUTOMATICA, SENZA NOPASSWD)
python3 dirtyfrag_scanner.py --subnet 192.168.1.0/24 --user ghostgtr666 --password 'server@02!' --patch
# Patch con Login Root
python3 dirtyfrag_scanner.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa --patch
# Patch con worker personalizzati (scansione più veloce)
python3 dirtyfrag_scanner.py --subnet 192.168.0.0/16 --user admin --password 'pass' --patch --workers 50
--subnet CIDR Scansione sottorete CIDR (es., 192.168.1.0/24)
--hosts IP[,IP,...] Scansione IP specifici (separati da virgola, senza spazi)
--user USERNAME Nome utente SSH (richiesto)
--password PASSWORD Password SSH (usare virgolette se ci sono caratteri speciali)
--key PATH Percorso della chiave privata SSH (es., ~/.ssh/id_rsa, non known_hosts!)
--port PORT Porta SSH personalizzata (default: 22)
--timeout SECONDS Timeout connessione SSH (default: 10, max: 300)
--skip-discovery Salta il ping TCP discovery, SSH diretto a tutti gli IP
--workers NUM Numero di worker SSH paralleli (default: 20, min: 1, max: 100)
--patch Applica la mitigazione sugli host vulnerabili
--output FILE Salva i risultati dell'audit in un file JSON
Questo strumento è progettato per funzionare in vari ambienti server SSH senza richiedere modifiche a sudoers:
Root Diretto (consigliato)
--user root --key ~/.ssh/id_rsa --patch
Sudo NOPASSWD
--user ubuntu --key ~/.ssh/id_rsa --patch
/etc/sudoers già configurato con NOPASSWDsudo -nSudo con Iniezione Password (Zero-Touch) ⭐
--user ubuntu --password 'mypass' --patch
/etc/sudoers standard: ALL=(ALL) ALLsudo -S -p ''Ibrido (Chiave + Password)
--user ubuntu --key ~/.ssh/id_rsa --password 'mypass' --patch
Quando viene usato il flag --patch, lo strumento esegue i seguenti passaggi in sequenza:
/etc/modprobe.d/dirtyfrag.conf (se presente)/etc/modprobe.d/dirtyfrag.conf:
install esp4 /bin/false
install esp6 /bin/false
install rxrpc /bin/false
chmod 644 sul file di configurazionermmod esp4 (saltato se non caricato)rmmod esp6 (saltato se non caricato)rmmod rxrpc (saltato se non caricato)echo 3 > /proc/sys/vm/drop_cachesNota: Se il modulo risulta ancora caricato dopo rmmod, l'utente verrà informato che potrebbe essere necessario un riavvio.
──────────────────────────────────────────────────────────
Host 1/2: 10.134.205.163 (ubuntu-web-01)
──────────────────────────────────────────────────────────
OS : Ubuntu 22.04.4 LTS
Kernel : 6.8.0-111-generic
Priv : user
CVE-2026-43284 (xfrm-ESP) [POSSIBLY_SAFE]
esp4 loaded : no
esp6 loaded : no
Mitigation : NOT applied
Upstream patch: NOT included (<6.15)
CVE-2026-43500 (RxRPC) [VULNERABLE]
rxrpc loaded : YES
Mitigation : NOT applied
Note: No upstream patch exists yet — mitigation is the ONLY fix
[✓] Mitigation applied successfully!
[Privilege check] OK (using: sudo (auto-pass))
[Clean target path] OK
[Write modprobe config] OK
[Verify config written] OK (3 entries)
[Set file permissions] OK
[Unload esp4 module] Skipped (not loaded or already removed)
[Unload esp6 module] Skipped (not loaded or already removed)
[Unload rxrpc module] Unloaded
[Flush page cache] OK
[Final verify] Config file valid
[Final verify] All vulnerable modules unloaded
[Result] Mitigation applied successfully
════ SUMMARY ════
+----------------+-------------------+------+------------+------------+----------+
| Host | OS/Kernel | Priv | CVE-43284 | CVE-43500 | Patched? |
+----------------+-------------------+------+------------+------------+----------+
| 10.134.205.163 | Ubuntu 22.04.4 | user | POSSIBLY_S | VULNERABLE | YES ✓ |
| 10.134.205.164 | Ubuntu 22.04.4 | user | VULNERABLE| VULNERABLE | FAILED ✗ |
| 10.134.205.165 | Debian 12 | root | MITIGATED | MITIGATED | — |
+----------------+-------------------+------+------------+------------+----------+
════ STATISTICS ════
Hosts scanned : 3
Errors : 0
Vulnerable 43284: 1
Vulnerable 43500: 2
Mitigations OK : 1
Mitigations FAIL: 1
└─ 1 failed due to insufficient privileges
Duration : 12.4s
Usa il flag --output per salvare i risultati completi dell'audit:
python3 dirtyfrag_scanner.py --subnet 192.168.1.0/24 --user admin --password 'pass' --output report.json
{
"scan_time": "2026-05-12 14:23:45",
"tool": "DirtyFrag Scanner v1.0",
"cves": ["CVE-2026-43284", "CVE-2026-43500"],
"total_hosts": 3,
"results": [
{
"host": "10.134.205.163",
"hostname": "ubuntu-web-01",
"os": "Ubuntu 22.04.4 LTS",
"kernel": "6.8.0-111-generic",
"kernel_v": [6, 8, 0],
"is_root": false,
"cve_43284": {
"status": "POSSIBLY_SAFE",
"esp4_loaded": false,
"esp6_loaded": false,
"mitigation_applied": false,
"upstream_patched": false
},
"cve_43500": {
"status": "VULNERABLE",
"rxrpc_loaded": true,
"mitigation_applied": false
},
"patch_applied": true,
"patch_msg": "...",
"error": null
}
]
}
# SBAGLIATO
python3 dirtyfrag_scanner.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa.pub
# CORRETTO (usa la chiave privata, non .pub)
python3 dirtyfrag_scanner.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa
Il file fornito non è una chiave privata. Verifica:
.pub (chiave pubblica)known_hosts-----BEGIN PRIVATE KEY----- o -----BEGIN RSA PRIVATE KEY-----# SBAGLIATO
python3 dirtyfrag_scanner.py --user ghostgtr666--password 'pass' --subnet 192.168.1.0/24
# CORRETTO
python3 dirtyfrag_scanner.py --user ghostgtr666 --password 'pass' --subnet 192.168.1.0/24
L'utente non ha accesso sudo, oppure la password non è stata fornita quando richiesta:
# Opzione 1: Usa root direttamente
python3 dirtyfrag_scanner.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa --patch
# Opzione 2: Fornisci la password per l'iniezione automatica sudo
python3 dirtyfrag_scanner.py --subnet 192.168.1.0/24 --user admin --password 'pass' --patch
# Opzione 3: Configura NOPASSWD in /etc/sudoers
echo 'admin ALL=(ALL) NOPASSWD: ALL' | sudo tee -a /etc/sudoers
Aumenta --timeout:
python3 dirtyfrag_scanner.py --subnet 192.168.1.0/24 --user admin --password 'pass' --timeout 30
Alcune distribuzioni pre-compilano il kernel senza i moduli esp4/esp6/rxrpc. Verifica manualmente:
# Sul host di destinazione
cat /proc/cmdline | grep -i module
lsmod | grep -E 'esp4|esp6|rxrpc'
python3 dirtyfrag_scanner.py \
--subnet 192.168.100.0/24 \
--user monitoring \
--password 'monitoring123' \
--workers 30 \
--output full-audit.json
python3 dirtyfrag_scanner.py \
--subnet 10.0.0.0/16 \
--user root \
--key ~/.ssh/prod_rsa \
--patch \
--workers 50 \
--output emergency-patch.json
python3 dirtyfrag_scanner.py \
--hosts 192.168.1.10,192.168.1.20,192.168.1.30 \
--user ubuntu \
--key ~/.ssh/dev_rsa \
--output critical-servers.json
python3 dirtyfrag_scanner.py \
--subnet 192.168.50.0/24 \
--user deploy \
--key ~/.ssh/deploy_ed25519 \
--password 'deploy@backup' \
--patch \
--output deploy-scan.json
Sviluppato da Gagaltotal666 - GhostGTR666
GitHub: github.com/gagaltotal
Disclaimer: Questo strumento è destinato esclusivamente ad audit di sicurezza legittimi e autorizzati. L'utente è responsabile dell'uso di questo strumento.