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-31431-live-code-corruption — CVE-2026-31431 (Copy Fail) nuovo exploit: corruzione del codice in tempo reale tramite page cache. Sovrascrive il codice di exit() di libc attraverso la condivisione delle pagine MAP_PRIVATE — colpisce TUTTI i processi in esecuzione. | Kitploit
Strumenti/GitHubGitHub/ikow/cve-2026-31431-live-code-corruption
Escalation di PrivilegiFramework di ExploitAnalisi delle VulnerabilitàExploitBinary Exploitation
GitHubikow/cve-2026-31431-live-code-corruption

CVE-2026-31431-live-code-corruption

CVE-2026-31431 (Copy Fail) nuovo exploit: corruzione del codice in tempo reale tramite page cache. Sovrascrive il codice di exit() di libc attraverso la condivisione delle pagine MAP_PRIVATE — colpisce TUTTI i processi in esecuzione.

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
164 mesi faNon ancora revisionato

CVE-2026-31431 — Corruzione del Codice Live tramite Page Cache

Una tecnica di sfruttamento innovativa per CVE-2026-31431 ("Copy Fail") che corrompe il codice eseguibile dei processi in esecuzione attraverso la page cache del kernel Linux, ottenendo l'elevazione dei privilegi a root.

Cosa C'è di Diverso

Tutti gli exploit pubblicati per questa CVE corrompono file di dati — modificando /etc/passwd per cambiare l'UID di root, o patchando i binari setuid su disco. Questo exploit fa qualcosa di fondamentalmente diverso: corrompe il codice eseguibile live in memoria attraverso il meccanismo della page cache del kernel.

Exploit pubblicatiQuesto exploit
ObiettivoFile di dati (/etc/passwd, /usr/bin/su)Codice eseguibile (sezione .text di libc)
MeccanismoContenuto del file analizzato dai programmiPagine di codice eseguite direttamente dalla CPU
AmbitoSingolo fileTUTTI i processi che mappano libc
Modifica su discoSì (contenuto del file modificato)No (solo page cache in memoria)
RilevamentoMonitoraggio dell'integrità dei fileInvisibile ai controlli del filesystem

Come Funziona

L'Intuizione sulla Page Cache

Quando Linux mappa una libreria condivisa con MAP_PRIVATE, non copia immediatamente le pagine del file. Invece, le voci della tabella delle pagine del processo puntano direttamente alle pagine fisiche della page cache. La copia avviene solo in scrittura (copy-on-write). Per le pagine di codice (.text), i processi non vi scrivono mai — quindi rimangono condivise con la page cache per sempre.

root@kitploit:~
Processo A (bash)     Processo B (su)      Page Cache (libc)
  ┌──────┐            ┌──────┐            ┌──────────┐
  │ PTE  │───────────>│      │            │ exit():  │
  │      │            │ PTE  │───────────>│ endbr64  │
  └──────┘            └──────┘            │ push rax │
    MAP_PRIVATE         MAP_PRIVATE       │ ...      │
    (pagina pulita)     (pagina pulita)   └──────────┘
                                               ↑
                                    Copy Fail scrive qui!

CVE-2026-31431 ci fornisce una scrittura controllata di 4 byte nella page cache di qualsiasi file leggibile. Corrompendo le pagine di codice di libc, modifichiamo le istruzioni che ogni processo esegue.

L'Exploit

  1. Scrivere lo shellcode (39 byte) nella posizione della funzione on_exit() nella page cache di libc — 10 scritture di 4 byte ciascuna
  2. Patchare exit() per saltare al nostro shellcode — 1 scrittura di 4 byte
  3. Trigger: qualsiasi programma che chiama exit() (praticamente ogni programma) esegue il nostro shellcode

Lo shellcode esegue setuid(0) → setgid(0) → execve("/bin/sh"), fornendo una shell root.

Panoramica di CVE-2026-31431

  • Bug: Errore logico in crypto/algif_aead.c — l'ottimizzazione in-place del 2017 (72548b093ee3) consente a splice() di alimentare le pagine della page cache nella decrittazione AEAD. Il riarrangiamento ESN dell'algoritmo authencesn scrive 4 byte scratch di ritorno nello scatterlist di origine, corrompendo la page cache del file spliced.
  • Primitiva: Scrittura deterministica di 4 byte nella page cache di qualsiasi file leggibile
  • Requisiti: Nessuno — i socket AF_ALG sono disponibili agli utenti non privilegiati
  • Fix: Copia in un buffer out-of-place prima dell'operazione crittografica (kernel 6.12.85+, 6.15+)

Utilizzo

root@kitploit:~
# Compilazione
gcc -o exploit exploit.c

# Esecuzione come utente non privilegiato
./exploit /lib/x86_64-linux-gnu/libc-2.31.so

# Trigger — esegui qualsiasi programma (chiama exit())
su -c id
# uid=0(root) gid=0(root) groups=0(root)

Testato Su

  • Kernel: 6.12.79 (Ubuntu/Debian, prima del fix in 6.12.85)
  • glibc: 2.31-0ubuntu9.7
  • Risultato: Shell root completa, verificata dal log del kernel: process 'id' launched '/bin/sh'

File

  • exploit.c — Exploit completo con iniezione di shellcode
  • copyfail_test.c — Verifica della primitiva (testa la scrittura di 4 byte)

Cronologia

  • 2017: Introdotta l'ottimizzazione in-place (72548b093ee3)
  • 2026-04-29: Divulgata CVE-2026-31431
  • 2026-04-30: Fix rilasciato nel kernel 6.12.85
  • 2026-05-06: Sviluppato questo exploit (tecnica innovativa di corruzione del codice live)

Riferimenti

  • NVD — CVE-2026-31431
  • Commit del fix
  • Analisi di Copy Fail (Xint)

Disclaimer

Questo strumento è fornito esclusivamente per ricerca sulla sicurezza autorizzata e scopi educativi. Non utilizzarlo contro sistemi di cui non sei proprietario o per i quali non hai esplicita autorizzazione al test.

Correlato: Dirty Frag (7 maggio 2026)

Dirty Frag ha divulgato altre due varianti di scrittura nella page cache nella stessa classe di bug:

  • Percorso ESP (esp4/esp6): Stesso sink authencesn di Copy Fail, raggiunto tramite IPsec ESP-in-UDP. Richiede user namespaces. Scrittura di 4 byte.
  • Percorso RxRPC (rxrpc/rxkad): Decrittazione in-place pcbc(fcrypt) su pagina pinnata da splice. Nessun namespace richiesto. Scrittura di 8 byte.

La tecnica di corruzione del codice live in questo repository funziona con qualsiasi di queste primitive di scrittura nella page cache — basta sostituire la funzione write4() con il trigger ESP o RxRPC. La tecnica è agnostica rispetto alla primitiva.

Scarica lo strumento