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
Strumenti/GitHubGitHub/kaleth4/cve-2026-31431
Escalation di PrivilegiFramework di ExploitAnalisi delle VulnerabilitàExploitPenetration Testing
GitHubkaleth4/cve-2026-31431

CVE-2026-31431

Exploit e detector per un'escalation locale dei privilegi nel kernel Linux (CVE-2026-31431) che corrompe la page cache per ottenere i privilegi di root, con indicazioni di mitigazione.

Vedi Repository
3 mesi 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

🚨 CVE-2026-31431: Copy Fail

Un fallo critico di 9 anni nel kernel Linux che consente di ottenere accesso root in pochi secondi


📋 Riepilogo Esecutivo

AttributoDettagli
CVECVE-2026-31431
SoprannomeCopy Fail
TipoEscalation dei Privilegi Locale (LPE)
CVSS7.8 (High)
Scoperto daTheori (Xint Code)
Divulgazione29 aprile 2026
ComponenteSottosistema algif_aead del kernel Linux

⚡ Perché è così pericoloso?

🎯 Velocità

  • Exploit istantaneo: < 1 secondo per ottenere root
  • Script Python di soli 732 byte

👻 Invisibilità Assoluta

  • Modifica solo la memoria RAM (page cache), non il disco
  • Gli strumenti di integrità dei file non lo rilevano
  • Al riavvio, la traccia scompare (analisi forense compromessa)

🌍 Portata Massiccia

  • Colpisce praticamente tutte le distribuzioni moderne
  • Kernel dalla v4.14 (2017) alla v7.0-rc
  • Vulnerabile per 9 anni senza essere rilevato

☁️ Rischio in Cloud/Kubernetes

  • Consente l'escape dai container verso il nodo principale
  • La cache delle pagine è condivisa tra host e container
  • Impatto critico in ambienti multi-tenant

🔍 Dettagli Tecnici

Causa Radice

Errore nell'ottimizzazione dell'"operazione in-place" introdotta nel 2017 (commit 72548b093ee3). Consente a un utente locale di eseguire una scrittura controllata di 4 byte direttamente nella cache delle pagine del kernel.

Meccanismo di Sfruttamento

  1. L'attaccante utilizza l'interfaccia AF_ALG per accedere agli algoritmi crittografici del kernel
  2. Corrompe la versione in memoria di binari setuid (/usr/bin/su) o file sensibili (/etc/passwd)
  3. Eseguendo il binario corrotto, ottiene una shell di root

Perché è passato inosservato

È un bug logico di progettazione, non un overflow di memoria. Richiedeva un'analisi approfondita del sottosistema crittografico per essere rilevato.


📊 Sistemi Interessati

✅ Confermati

  • Ubuntu: 20.04, 22.04, 24.04 LTS
  • RHEL/AlmaLinux/Rocky Linux: Tutte le versioni moderne
  • Debian: Tutte le versioni con kernel v4.14+
  • Amazon Linux 2023
  • SUSE: Versioni recenti

🛡️ Piano di Rimedio

1️⃣ Soluzione Definitiva: Aggiornare il Kernel

root@kitploit:~
# Ubuntu/Debian
sudo apt update
sudo apt upgrade
sudo reboot

# RHEL/AlmaLinux/Rocky
sudo dnf update kernel
sudo reboot

# Verificare la versione del kernel
uname -r

⚠️ Il riavvio è obbligatorio per attivare il nuovo kernel.


2️⃣ Mitigazione di Emergenza (senza riavvio immediato)

Per Ubuntu/Debian:

root@kitploit:~
# Disabilitare il caricamento del modulo vulnerabile
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/copyfail_mitigation.conf

# Scaricare il modulo se già in uso
sudo rmmod algif_aead

Per RHEL/AlmaLinux:

root@kitploit:~
# Il modulo è solitamente integrato nel kernel
# Aggiungere il parametro di avvio per disabilitarlo
sudo grubby --update-kernel=ALL --args="initcall_blacklist=algif_aead_init"

# Riavviare per applicare le modifiche
sudo reboot

3️⃣ Pulire le Cache (se sospetti uno sfruttamento precedente)

root@kitploit:~
# Svuotare la cache delle pagine a caldo
sudo sysctl -w vm.drop_caches=3

⚠️ Nota: Questo non sostituisce la patch. È solo una misura complementare.


📅 Cronologia degli Eventi

DataEvento
29 aprileDivulgazione pubblica da parte di Theori
1 maggio

📦 Stato delle Patch


🔐 Verificare il tuo Sistema

Il tuo kernel è vulnerabile?

root@kitploit:~
# Ottenere la versione del kernel
uname -r

# Vulnerabile se:
# - v4.14 fino a v7.0-rc (rilasciato tra 2017 e aprile 2026)
# - Contiene il commit 72548b093ee3

# Verificare se il modulo algif_aead è caricato
lsmod | grep algif_aead

# Se appare nell'elenco, il tuo sistema è vulnerabile

🧬 Analisi di Sicurezza: Il Fattore IA

La cosa più dirompente: Scoperto dall'IA in 1 ora

Un'IA ha identificato questo difetto che è sfuggito agli sviluppatori per 9 anni. Questo segna un prima e un dopo:

  • 🤖 Le macchine possono esaminare il codice del kernel più velocemente degli umani
  • 🔍 Trovando difetti logici complessi automaticamente
  • ⚠️ Implicazioni per il futuro della ricerca sulle 0-day

Quick start

root@kitploit:~
# 1. Detect
python3 prueba.py
#   exit 0 = not vulnerable, 2 = vulnerable, 1 = test error

# 2. Exploit (interactive — su will prompt for your own password)
python3 exploit.py --shell

Detector usage

root@kitploit:~
python3 prueba.py

Cosa fa:

  1. Conferma che AF_ALG e l'algoritmo authencesn(hmac(sha256),cbc(aes)) siano accessibili da un processo senza privilegi.

  2. Crea un file sentinella di 4 KiB in una directory temporanea e riempie la cache delle pagine.

  3. Invia 8 byte di AAD inline tramite sendmsg+cmsg con seqno_lo impostato sul marcatore PWND, quindi copia 32 byte dalla pagina della cache delle pagine della sentinella nel socket di operazione AF_ALG tramite os.splice().

  4. Chiama recv() per avviare la decrittazione. Il controllo di autenticazione fallisce con EBADMSG; la scrittura temporanea viene eseguita comunque.

  5. Rilegge il file (cache delle pagine, non disco) e cerca il marcatore.

Classi di output:

  • Precondizione non soddisfatta: AF_ALG o authencesn non disponibili. Exit 0.
  • VULNERABILE a CVE-2026-31431: il marcatore PWND è stato inserito nella pagina modificata.

Exit 2.

  • Cache delle pagine MODIFICATA tramite un percorso di inserimento AEAD in-place: è stata scritta nella pagina, ma il marcatore non è stato inserito nella posizione prevista. Trattare come vulnerabile. Exit 2.
  • Cache delle pagine intatta: patchato. Exit 0.

Il detector non modifica mai /usr/bin/su, /etc/passwd né alcun altro file al di fuori della directory temporanea che crea, e tale file viene eliminato al termine.

Output. ## Utilizzo LPE

root@kitploit:~
python3 exploit_cve_2026_31431.py # Solo patch, stampa i passaggi successivi
python3 exploit_cve_2026_31431.py --shell # Patch ed esegue `su <utente>`

Funzione:

  1. Cerca la riga UID dell'utente in esecuzione in /etc/passwd e trova l'

offset in byte del campo UID di 4 caratteri.

  1. Esegue un write4 su quell'offset, sostituendo l'UID con

0000.

  1. Chiama pwd.getpwnam(utente) per confermare che libc ora riporta UID 0.
  2. Con --shell, esegue execvp("su", ["su", utente]). Inserisci la tua password. PAM valida contro /etc/shadow (non modificato), quindi

setuid(getpwnam(user).pw_uid) viene impostato a 0.

Requisiti

  • L'utente in esecuzione ha un UID di 4 cifre (1000–9999). Gli UID da 1 a 3 cifre

richiedono scritture multi-colpo; estendere write4 di conseguenza.

  • Nessun demone di cache NSS (nscd, sssd, systemd-userdbd) sta mascherando le letture di /etc/passwd. Se getpwnam restituisce ancora l'UID reale dopo l'applicazione della patch, riavvia o ignora la cache, oppure seleziona un utente diverso.

  • La pagina /etc/passwd deve rimanere nella cache tra l'applicazione della patch e l'esecuzione di su. In pratica, questo è affidabile su qualsiasi sistema con una pressione di memoria normale.

Reversione

Il file /etc/passwd su disco rimane invariato.

L'esecuzione a secco (exploit_cve_2026_31431.py senza --shell) elimina automaticamente la pagina corrotta all'uscita tramite POSIX_FADV_DONTNEED, quindi le ricerche UID → nome tornano alla normalità immediatamente.

Dopo l'uso di --shell**, la pagina rimane corrotta finché non viene cancellata. Finché è corrotta, qualsiasi operazione che risolve UID 1000 → nome (ad esempio ls, file manager, controlli di proprietà scp/sftp) fallirà o mostrerà identificatori numerici. Per cancellarla:

root@kitploit:~
# Senza privilegi: richiedi l'eliminazione della cache delle pagine di /etc/passwd:
python3 -c "import os; fd=os.open('/etc/passwd', os.O_RDONLY); \
os.posix_fadvise(fd, 0, 0, os.POSIX_FADV_DONTNEED); os.close(fd)"

# Dalla console di root:
echo 3 > /proc/sys/vm/drop_caches

Anche un riavvio la cancella.

Come funziona write4

root@kitploit:~
sendmsg([AAD di 8 byte], cmsg=[ALG_SET_OP=DECRYPT, ALG_SET_IV, ALG_SET_AEAD_ASSOCLEN=8],
flags=MSG_MORE)
splice(target_fd, pipe_w, 32, offset_src=file_offset)
splice(pipe_r, op_fd, 32)
recv(op_fd) # EBADMSG; la scrittura temporanea è già stata eseguita

I 4 byte delle posizioni da 4 a 7 dell'AAD (seqno_lo) vengono scritti da authencesn nella scatterlist di destinazione, che in questo percorso di codice è la pagina della cache delle pagine che abbiamo estratto da target_fd. L'offset di atterraggio all'interno della pagina corrisponde all'offset_src che abbiamo passato a splice().

Mitigazione

Fino a quando il kernel patchato non arriva alla tua distribuzione:

root@kitploit:~
sudo tee /etc/modprobe.d/disable-algif-aead.conf <<<'install algif_aead /bin/false'
sudo rmmod algif_aead 2>/dev/null

Dopo aver applicato la patch, test_cve_2026_31431.py dovrebbe mostrare il messaggio «Precondizione non soddisfatta» e uscire con codice 0.

La correzione originale riporta le operazioni AEAD in-place a operazioni out-of-place, mantenendo le pagine della cache delle pagine fuori dalle scatterlist modificabili.

📚 Riferimenti Ufficiali

  • CVE-2026-31431 - NVD
  • Copy Fail Patches - AlmaLinux
  • Sysdig Security Research
  • CISA Alert

⚠️ Raccomandazioni Finali

  1. Priorità Critica: Aggiorna il tuo kernel prima del 15 maggio 2026 (mandato CISA)
  2. Se non puoi riavviare: Applica la mitigazione temporanea disabilitando algif_aead
  3. In Cloud/Kubernetes: Verifica che i tuoi nodi siano patchati immediatamente
  4. Monitoraggio: Cerca tentativi di caricamento del modulo algif_aead nei log di audit

Ultimo aggiornamento: 3 maggio 2026
Stato: 🔴 CRITICO - Azione immediata richiesta

Scarica lo strumento
Primi tentativi di sfruttamento attivo rilevati
2 maggioCISA ordina alle agenzie federali USA di applicare la patch entro il 15 maggio
3 maggioPatch disponibili in Ubuntu, RHEL, AlmaLinux, Debian
DistribuzioneStatoRiferimento
Ubuntu✅ PatchatoUSN-8226-1 (20.04, 22.04, 24.04)
RHEL/AlmaLinux/Rocky✅ DisponibileDal 1 maggio
Debian✅ Nei repository di sicurezzaAggiornamento disponibile
Android⏳ ProssimamenteBollettino di sicurezza di giugno 2026