
Script di mitigazione e patch rapida per CVE-2026-31431 (Copy Fail) su VPS Ubuntu/Debian
🌐 English | Português | Español | 中文 | Íslenska
Mitigazione e patch in un unico comando per CVE-2026-31431 — la vulnerabilità di escalation dei privilegi locali "Copy Fail" del kernel Linux. Lo script disabilita il modulo vulnerabile algif_aead, aggiorna il kernel tramite apt e (opzionalmente) installa un timer systemd per mantenere il sistema aggiornato.
Progettato per server Ubuntu (compatibile anche con sistemi basati su Debian).
⚠️ Rivedi lo script prima di eseguirlo. Questo è uno strumento di sicurezza che viene eseguito come root. Leggi
copyfail.shprima di passarlo asudo. Preferisci sempre il processo ufficiale di aggiornamento del kernel della tua distribuzione quando possibile.
CVE-2026-31431 ("Copy Fail") è un difetto logico nel modulo algif_aead del kernel (interfaccia socket AEAD dell'API crypto in spazio utente). Un utente locale non privilegiato può innescare una scrittura deterministica di 4 byte nella cache delle pagine di qualsiasi file leggibile — inclusi i binari setuid — e ottenere accesso root in pochi secondi. Il difetto è stato introdotto nel 2017 (commit 72548b093ee3) e colpisce ogni kernel compilato tra il 2017 e la correzione. Questo script disabilita il modulo vulnerabile mentre applichi la patch del kernel della tua distribuzione.
apt-get e awk disponibilisudo)wget -O copyfail.sh https://raw.githubusercontent.com/paulorlima9/copyfail-fix/main/copyfail.sh
chmod +x copyfail.sh
sudo ./copyfail.sh
Al primo avvio, lo script:
/etc/modprobe.d/disable-algif.conf per mettere in blacklist il modulo algif_aeadalgif_aead se attualmente caricatoapt-get update && apt-get upgrade -y per installare il kernel patchatoÈ necessario un riavvio dopo l'aggiornamento per caricare il nuovo kernel.
sudo ./copyfail.sh [options]
| Opzione | Breve | Descrizione |
|---|---|---|
--help | -h | Mostra il messaggio di aiuto |
--mitigate | -m | Applica solo la mitigazione (disabilita il modulo algif_aead) |
--upgrade | -u | Aggiorna solo kernel/pacchetti (apt-get upgrade) |
--check | -c | Mostra lo stato attuale (versione kernel, modulo, mitigazione) |
--revert | -r | Annulla la mitigazione (dopo che il kernel è patchato e riavviato) |
--supervision | -s | Abilita aggiornamenti automatici giornalieri tramite timer systemd |
Correzione completa — applica la mitigazione e aggiorna il kernel:
sudo ./copyfail.sh
Solo controllo stato:
sudo ./copyfail.sh --check
Solo mitigazione (nessun aggiornamento del kernel):
sudo ./copyfail.sh --mitigate
Annulla la mitigazione dopo aver confermato che il kernel è patchato e riavviato:
sudo ./copyfail.sh --revert
Abilita aggiornamento automatico giornaliero (Supervisione):
sudo ./copyfail.sh --supervision
La funzione di Supervisione installa un timer systemd che esegue apt-get upgrade una volta ogni 24 ore, garantendo che le patch del kernel vengano applicate non appena la tua distribuzione le pubblica.
Quando abilitata, vengono create due unità systemd:
copyfail-fix-supervision.service — servizio oneshot che esegue lo script con --upgradecopyfail-fix-supervision.timer — timer che attiva il servizio giornalmente (e 5 minuti dopo l'avvio)# Controlla lo stato del timer
systemctl status copyfail-fix-supervision.timer
# Visualizza la prossima esecuzione pianificata
systemctl list-timers copyfail-fix-supervision.timer
# Disabilita gli aggiornamenti automatici
sudo systemctl stop copyfail-fix-supervision.timer
sudo systemctl disable copyfail-fix-supervision.timer
# Attiva manualmente un aggiornamento
sudo systemctl start copyfail-fix-supervision.service
install algif_aead /bin/false in /etc/modprobe.d/disable-algif.conf così il modulo non può essere caricato al prossimo avviormmod algif_aead per scaricarlo dal kernel in esecuzione (saltato se il modulo è in uso — riavvio richiesto)apt-get update seguito da un apt-get upgrade non interattivo per installare l'ultimo pacchetto del kernel--check, ispeziona uname -r, lsmod, il file modprobe e l'ultimo pacchetto linux-image-* installato--revert, elimina il file modprobe e ricarica il modulo tramite modprobeDurante l'esecuzione, lo script mostra indicatori di avanzamento:
+ (verde) — azione applicata- (rosso) — azione annullata. (grigio) — azione saltata (già applicata o non applicabile)! (giallo) — avviso (es. riavvio richiesto)MIT