
CVE-2026-31431 Script di rilevamento della vulnerabilità Copy Fail del kernel Linux
CVE-2026-31431 (Copy Fail) è una vulnerabilità di escalation dei privilegi locale nel kernel Linux che, tramite i socket AF_ALG (address family 38) combinati con la chiamata di sistema a copia zero splice(), aggira i permessi di scrittura sui file alterando la page cache, consentendo la modifica di binari SUID senza permessi di scrittura e ottenendo così privilegi di root.
socket(AF_ALG, SOCK_SEQPACKET, 0) # Crea socket AF_ALG
-> bind(authencesn(hmac(sha256),cbc(aes))) # Associa il template di cifratura AEAD
-> sendmsg(operazione AEAD) # Attiva il percorso di cifratura del kernel
-> splice(-> file di destinazione) # Scrittura a copia zero, bypassa i controlli dei permessi
-> altera file SUID come /usr/bin/su # Escalation a root
| Ramo del kernel | Intervallo affetto | Versione corretta |
|---|---|---|
| mainline / 6.19.x | < 6.19.12 | >= 6.19.12 |
| 6.18.x (stable) | < 6.18.22 | >= 6.18.22 |
| 6.12.x (LTS) | < 6.12.23 | >= 6.12.23 |
| 6.6.x (LTS) | < 6.6.87 | >= 6.6.87 |
| 6.1.x (LTS) | < 6.1.130 | >= 6.1.130 |
| 4.14 ~ < 7.0 | Tutte affette | Aggiornare a una versione sicura |
| < 4.14 | Non affette | - |
| >= 7.0 | Correzione inclusa | - |
# Scarica lo script
wget https://raw.githubusercontent.com/tangjie1/CVE-2026-31431-Check/main/cve-2026-31431-check.sh
# Rendi eseguibile ed esegui (richiede root)
chmod +x cve-2026-31431-check.sh
sudo ./cve-2026-31431-check.sh
# Modalità non interattiva (adatta per automazione/CI)
sudo ./cve-2026-31431-check.sh --non-interactive
| ID | Contenuto della verifica | Descrizione |
|---|---|---|
| [1.0] | Tabella intervalli versioni affette | Mostra il confronto versioni affette/corrette per ciascun ramo |
| [1.1] | Versione kernel | Confronto con intervalli noti affetti e baseline corrette |
| [1.2] | Stato modulo algif_aead | Quattro stati: integrato / caricato / presente caricabile su richiesta / assente |
| [1.3] | Template di cifratura authencesn | Disponibilità in /proc/crypto |
| [1.4] | Misure di mitigazione | initcall_blacklist + blacklist modprobe.d |
| [1.5] | Giudizio complessivo | Conclusione safe/medium/high/critical tramite incrocio di più fattori |
| ID | Contenuto della verifica | Descrizione |
|---|---|---|
| [2.1] | Rilevamento page cache SUID | Confronto hash dd direct I/O vs cache |
| [2.2] | Cronologia caricamento moduli | dmesg + durata caricamento lsmod |
| [2.3] | Scansione cronologia Shell | Corrispondenza parole chiave in .bash_history di tutti gli utenti |
| [2.4] | Verifica file di sistema | Utenti anomali UID=0 / tempi di modifica passwd & SUID |
| [2.5] | Scansione directory temporanee | File sospetti nelle ultime 24h in /tmp /var/tmp /dev/shm |
| [2.6] | Audit log di sistema | Registri fallimenti su + parole chiave vulnerabilità sudo |
| [2.7] | Rilevamento fuga da container | Ambiente Docker + seccomp + /proc/1/root |
| Metodo | Principio | Riavvio necessario | Scenario applicabile |
|---|---|---|---|
| Metodo 1 | Blacklist modprobe.d + rmmod | No | CONFIG=m (modalità modulo) |
| Metodo 2 | Parametro kernel initcall_blacklist | Sì | CONFIG=y (modalità integrata) o difesa in profondità |
| Metodo 3 | Aggiornamento kernel a versione sicura | Sì | Correzione permanente (consigliato) |
Ubuntu / Debian / Kali / CentOS / RHEL / Rocky / AlmaLinux / Fedora / openSUSE / Arch Linux / Alpine Linux
MIT License
Questo strumento è destinato esclusivamente alla ricerca sulla sicurezza e a test di penetrazione autorizzati. L'utente è tenuto a garantire il rispetto delle leggi e dei regolamenti locali e a utilizzarlo solo su sistemi target esplicitamente autorizzati. Gli sviluppatori non sono responsabili di alcuna conseguenza derivante da un uso non autorizzato.