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
page-cache-corruption-lpes — CVE-2026-46331 e CVE-2026-43503 | Kitploit
Strumenti/GitHubGitHub/rjt-gupta/page-cache-corruption-lpes
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitCTFApprendimento e FormazioneBinary Exploitation
GitHubrjt-gupta/page-cache-corruption-lpes

page-cache-corruption-lpes

CVE-2026-46331 e CVE-2026-43503

Vedi Repository
12329 giorni faNon ancora revisionato

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

LPE da Corruzione della Page Cache

3 exploit di escalation dei privilegi locali del kernel Linux. Stessa classe di bug di Dirty COW e Dirty Pipe. Shell di root in pochi secondi. Tutte le principali distro colpite.

Tutti e tre corrompono la page cache del kernel — la copia in memoria dei file che i processi leggono ed eseguono effettivamente. Il file su disco non viene mai toccato. Gli strumenti di integrità dei file non vedono nulla. execve("/usr/bin/su") carica dalla cache → esegue il tuo shellcode → root.


Gli Exploit

ExploitCVEMeccanismoTempo per rootRighe
Dirty PeditCVE-2026-46331TC pedit COW gap (wraparound di u32)< 1 secondo275
skb_shiftCVE-2026-43503Perdita del flag di trasferimento frag in TCP SACK~10 secondi500
GRO Flag LossCVE-2026-43503Perdita del flag di trasferimento frag nella coalescenza GRO~10 secondi550

Tutti e tre: da utente non privilegiato → root. Nessun permesso speciale. Solo user namespaces.


Qual è la Classe di Bug?

Ogni exploit in questa repo segue lo stesso schema:

root@kitploit:~
1. Get page-cache pages into a kernel buffer (splice)
2. Bypass the copy-on-write defense
3. Write in-place → read-only file corrupted in memory

Ciò che cambia è COME viene aggirata la difesa e CHI esegue la scrittura:


La Genealogia

root@kitploit:~
2016  Dirty COW         COW race via mmap + fork
2022  Dirty Pipe        Stale PIPE_BUF_FLAG_CAN_MERGE in splice
2026  Copy Fail         AF_ALG in-place AEAD on page-cache scatterlist
2026  Dirty Frag        ESP skip_cow on splice'd frags (missing flag)
2026  Fragnesia         skb_try_coalesce drops SHARED_FRAG flag
2026  Dirty Pedit  ←    TC pedit COW gap, no crypto needed
2026  skb_shift    ←    TCP SACK drops SHARED_FRAG, ESP writes
2026  GRO Flag Loss ←   GRO merge drops SHARED_FRAG, ESP writes

Versioni Interessate

Configurazioni predefinite. Nessun hardening necessario per essere vulnerabili. Se esegui Linux, eri interessato.


Perché Dirty Pedit è Diverso

skb_shift e GRO usano entrambi la stessa tecnica di sfruttamento: perdere il flag SKBFL_SHARED_FRAG, poi lasciare che la crittografia ESP faccia XOR nelle pagine della page cache un byte alla volta usando una tabella di lookup IV precalcolata.

Dirty Pedit è una bestia completamente diversa:

  • Nessuna crittografia. Niente XFRM, niente ESP, niente AES-GCM, niente tabelle IV.
  • Scrittura diretta. TC pedit scrive esattamente i byte che specifichi tramite skb_store_bits.
  • Sub-secondo. Un pacchetto = 12 byte scritti. Root in un colpo solo.
  • Bypass della difesa differente. Non tocca affatto SHARED_FRAG — rompe skb_ensure_writable tramite wraparound di interi.

Compilazione

root@kitploit:~
# Build all three
cd dirty_pedit && gcc -static -O2 -o exploit exploit.c && cd ..
cd skb_shift   && gcc -static -O2 -o exploit exploit.c && cd ..
cd gro         && gcc -static -O2 -o exploit exploit.c && cd ..

Ogni exploit è un singolo file C autonomo. Nessuna dipendenza oltre a libc.


Esecuzione

root@kitploit:~
# Any of the three (as unprivileged user):
./exploit
# → root shell

Richiede: kernel Linux nell'intervallo di versioni interessate + CONFIG_USER_NS=y (predefinito su tutte le principali distro).


Output (Dirty Pedit)

root@kitploit:~
[*] Dirty Pedit — Local Privilege Escalation
[*] uid=1000 pid=42
[*] Victim line at offset 186: nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
[*] Injecting user 'a' (uid=0, no password) over victim line...
[+] User 'a' injected with uid=0!
[+] Running: su a
# id
uid=0(root) gid=0(root) groups=0(root)

Output (skb_shift / GRO)

root@kitploit:~
[*] uid=1000 euid=1000
[*] IV table pre-computed (256 entries)
[*] Writing 192 bytes to /usr/bin/su...
  [120] 0x00→0x48 ... OK
  [121] 0x00→0x31 ... OK
[*] Write complete: 192/192
[!] /usr/bin/su page cache overwritten!
# whoami
root

Proprietà Chiave


Divulgazione Responsabile

Tutte le vulnerabilità sono state divulgate responsabilmente al team di sicurezza del kernel Linux e ai maintainer di rete. Le patch sono state integrate a monte (upstream) e backportate nei rami stabili.

  • CVE-2026-46331: Corretta in v7.1-rc7, commit 899ee91156e5
  • CVE-2026-43503: Corretta in v7.1-rc5, commit 48f6a5356a33

Questi exploit sono pubblicati a scopo educativo e difensivo dopo che le patch erano disponibili. La corruzione della page cache è solo in memoria — un riavvio o echo 1 > /proc/sys/vm/drop_caches ripristina i file originali.


Autore

Rajat Gupta — Sicurezza Offensiva @ Qualcomm


Licenza

MIT

Scarica lo strumento
ExploitDifesa aggirataScrittore
Dirty Peditskb_ensure_writable (wraparound di u32 → COW parziale)skb_store_bits (scrittura diretta di 4 byte)
skb_shiftflag SKBFL_SHARED_FRAG perso durante TCP SACKdecrittazione ESP AES-GCM (1 byte per pacchetto)
GRO Flag Lossflag SKBFL_SHARED_FRAG perso durante l'unione GROdecrittazione ESP AES-GCM (1 byte per pacchetto)
ExploitIntrodottoCorrettoDistro interessate
Dirty Peditv5.18 (maggio 2022)v7.1-rc7Ubuntu, RHEL, Debian, Fedora, SUSE
skb_shiftv3.9 (2013)v7.1-rc5Ogni distro per 13 anni
GRO Flag Lossv3.9 (2013)v7.1-rc5Ogni distro per 13 anni
ProprietàDirty Peditskb_shiftGRO
PrivilegiNessuno (userns)Nessuno (userns)Nessuno (userns)
Accesso ai fileO_RDONLYO_RDONLYO_RDONLY
Crittografia necessariaNoSì (AES-GCM)Sì (AES-GCM)
Controllo di scrittura4 byte/pacchetto1 byte/pacchetto1 byte/pacchetto
AffidabilitàDeterministicaDeterministicaProbabilistica (retry)
Escape container K8sNo (nessuna veth necessaria)NoSì (veth+GRO di default)
Superficie d'attaccogeneve + TCloopback + espintcpveth + ESP-in-UDP