
Copy Fail (CVE-2026-31431) è un difetto logico nel modulo algif_aead del kernel Linux — parte dell'API crittografica AF_ALG per lo spazio utente. È stato divulgato il 29 aprile 2026 da Theori / Xint Code.
Uno script di rilevamento in sola lettura per la vulnerabilità di escalation dei privilegi locali Copy Fail nel kernel Linux.
Nessun codice di exploit. Nessun socket AF_ALG aperto. Nessun file scritto al di fuori di/etc/modprobe.d(solo quando si applica manualmente la mitigazione).
Copy Fail (CVE-2026-31431) è un difetto logico nel modulo algif_aead del kernel Linux — parte dell'API crittografica userspace AF_ALG. È stata divulgata il 29 aprile 2026 da Theori / Xint Code.
Uno script Python di 732 byte può concedere a un utente locale non privilegiato pieno accesso root su praticamente ogni principale distribuzione Linux creata dal 2017 — senza race condition, offset del kernel o payload compilati.
| Proprietà | Dettaglio |
|---|
| CVE | CVE-2026-31431 |
| CVSS | 7.8 ALTA |
| Tipo | Escalation dei privilegi locali (LPE) |
| Kernel interessati | 4.14 – 6.18.21, 6.19.0 – 6.19.11 |
| Causa principale | Ottimizzazione in-place di algif_aead (commit 72548b093ee3, 2017) |
| Fix upstream | Revert tramite commit a664bf3d603d |
| Affidabilità dell'exploit | Deterministico — nessuna race condition richiesta |
modprobe.d, parametro kernel cmdline initcall_blacklistkmod secondo USN-8226-1Nota su Ubuntu / Debian: Ubuntu non incrementa la versione del kernel upstream quando applica patch di sicurezza in backport. Lo script verifica quindi la versione del pacchetto
kmod(>= 31+20240202-2ubuntu7.2secondo USN-8226-1) piuttosto che affidarsi solo alla stringa della versione del kernel.
| Distribuzione | Metodo di controllo |
|---|---|
| Ubuntu / Linux Mint | Versione del pacchetto kmod (USN-8226-1) |
| Debian | Versione del pacchetto kmod + security tracker |
| Parrot OS | Versione del pacchetto kmod (Debian rolling) |
| RHEL / CentOS / AlmaLinux / Rocky | dnf updateinfo + cmdline initcall_blacklist |
| Fedora | dnf updateinfo |
| Amazon Linux | dnf check-update --security |
| SUSE / openSUSE | zypper lp |
| Arch Linux | pacman -Syu linux |
# Download
curl -O https://raw.githubusercontent.com/kw-soft/copyfail/main/copyfail.sh
# Rendi eseguibile
chmod +x copyfail.sh
# Esegui (root consigliato per piena visibilità del modulo)
sudo ./copyfail.sh
============================================
CVE-2026-31431 'Copy Fail' — Rilevamento sicuro
============================================
[*] Kernel: 6.8.0-71-generic
[!] Il kernel 6.8.0-71-generic rientra nell'intervallo upstream vulnerabile (4.14 – 6.19.11)
[~] Segue il controllo del backport della distribuzione — il solo numero di versione non è conclusivo
[*] Stato del modulo algif_aead:
[!] algif_aead è CARICATO — la superficie di attacco è attiva
[*] Stato della patch della distribuzione:
Distribuzione : Ubuntu 24.04
kmod installato : 31+20240202-2ubuntu6
kmod richiesto : >= 31+20240202-2ubuntu7.2
[!] kmod 31+20240202-2ubuntu6 < 31+20240202-2ubuntu7.2 — mitigazione NON applicata
============================================
RISULTATO
============================================
[!] VULNERABILE — kernel interessato e algif_aead attivo
============================================
CVE-2026-31431 'Copy Fail' — Rilevamento sicuro
============================================
[*] Kernel: 6.8.0-71-generic
[!] Il kernel 6.8.0-71-generic rientra nell'intervallo upstream vulnerabile (4.14 – 6.19.11)
[~] Segue il controllo del backport della distribuzione — il solo numero di versione non è conclusivo
[*] Stato del modulo algif_aead:
[✓] algif_aead NON è caricato
[✓] Blacklist modprobe attiva: /etc/modprobe.d/disable-algif_aead.conf
[*] Stato della patch della distribuzione:
Distribuzione : Ubuntu 24.04
kmod installato : 31+20240202-2ubuntu7.2
kmod richiesto : >= 31+20240202-2ubuntu7.2
[✓] kmod >= 31+20240202-2ubuntu7.2 — mitigazione USN-8226-1 presente
============================================
RISULTATO
============================================
[✓] MITIGATO — algif_aead è bloccato
[~] Applicare un kernel patchato quando disponibile per risolvere completamente il problema
sudo apt update && sudo apt upgrade && sudo reboot
Questo installa il pacchetto kmod patchato (USN-8226-1) che inserisce una regola modprobe.d che blocca algif_aead.
Se un riavvio immediato non è possibile:
echo 'install algif_aead /bin/false' | sudo tee /etc/modprobe.d/disable-algif.conf
sudo update-initramfs -u
sudo rmmod algif_aead 2>/dev/null || echo "Modulo in uso — riavvio richiesto"
⚠️ Sui kernel della famiglia RHEL,
algif_aeadè integrato nel kernel (CONFIG_CRYPTO_USER_API_AEAD=y).
Le regolemodprobe.dnon hanno effetto. Utilizzare invece il parametro grub:
sudo grubby --update-kernel=ALL --args='initcall_blacklist=algif_aead_init'
sudo reboot
sudo pacman -Syu linux && sudo reboot
La mitigazione non ha alcun impatto su nessuno dei seguenti:
dm-crypt / LUKSSolo le applicazioni configurate esplicitamente per utilizzare il motore afalg o che legano direttamente socket AEAD AF_ALG possono essere interessate — questo è raro nelle distribuzioni standard.
Hetzner non applica gli aggiornamenti del sistema operativo automaticamente. Ubuntu include unattended-upgrades preinstallato, ma deve essere abilitato e configurato.
# Verifica se gli aggiornamenti di sicurezza automatici sono attivi
cat /etc/apt/apt.conf.d/20auto-upgrades
# Visualizza la cronologia degli aggiornamenti
grep "^Start-Date\|^Commandline" /var/log/apt/history.log | tail -30
# Verifica se la mitigazione kmod è stata applicata automaticamente
grep "kmod\|algif" /var/log/apt/history.log
# Controlla l'ultima esecuzione di unattended-upgrades
tail -30 /var/log/unattended-upgrades/unattended-upgrades.log
Nota: Anche con
unattended-upgradesabilitato, i riavvii automatici sono disattivati per impostazione predefinita.
Un nuovo kernel diventa attivo solo dopo unrebootmanuale.
Questo script è pensato per l'uso su sistemi di tua proprietà o per i quali sei autorizzato a effettuare test.
Esegue controlli in sola lettura e non sfrutta la vulnerabilità in alcun modo.