
Script di mitigazione permanenti per CVE-2026-31431 (Copy Fail) su Ubuntu 24.04, che mettono in blacklist il modulo del kernel vulnerabile algif_aead e aggiornano l'initramfs per rendere la modifica persistente tra i riavvii.
Questo repository contiene script progettati per neutralizzare la vulnerabilità critica CVE-2026-31431, soprannominata "Copy Fail", sui sistemi Ubuntu.
[!IMPORTANT] Compatibilità: Questi script sono realizzati su misura e testati su Ubuntu Server 24.04 LTS. Sebbene la logica sia simile per altre distribuzioni, non sono stati testati su Debian o altre varianti Linux.
Prima di applicare la patch, scarica lo script di rilevamento ufficiale (sviluppato da rootsecdev) per validare lo stato attuale del tuo sistema:
# Scarica lo script di rilevamento
wget https://raw.githubusercontent.com/rootsecdev/cve_2026_31431/main/test_cve_2026_31431.py
# Assicurati di avere python3 installato
python3 --version
La vulnerabilità CVE-2026-31431 ($CVSS\ 7.8$) colpisce il sottosistema crittografico del kernel Linux (modulo ).
algif_aeadUn utente locale può corrompere la Page Cache del sistema sfruttando una falla nell'ottimizzazione "in-place" della funzione splice(). Ciò consente a un attaccante di forzare il kernel a scrivere dati arbitrari (numeri di sequenza) nelle pagine di memoria di file che dovrebbero essere di sola lettura (come binari SUID o file di sistema sensibili).
modprobe -r non bastaIl kernel Linux utilizza un meccanismo chiamato auto-loading. Se un processo o uno script (come il rilevatore) richiede un socket di tipo AF_ALG, il kernel ricarica automaticamente il modulo anche se è stato rimosso manualmente. Il metodo utilizzato in questa patch ("Hard Block") impedisce fisicamente al kernel di caricare il binario del modulo.
Esegui il tester per confermare se il tuo kernel attuale è esposto:
python3 test_cve_2026_31431.py
Se lo script mostra [!] VULNERABLE, procedi al passaggio successivo.
Lo script patch-CVE-2026-31431.sh neutralizza il vettore d'attacco in modo permanente. Crea un file di configurazione in /etc/modprobe.d/ e aggiorna l'initramfs per garantire che il blocco persista dopo un riavvio.
chmod +x patch-CVE-2026-31431.sh
sudo ./patch-CVE-2026-31431.sh
Esegui nuovamente lo script di rilevamento. Ora dovresti vedere un messaggio che indica che i prerequisiti non sono soddisfatti:
[+] Precondition not met ('authencesn(...) cannot be instantiated).
Questo conferma che il modulo è stato neutralizzato con successo.
Una volta che Ubuntu rilascia una correzione ufficiale tramite un aggiornamento del kernel (controlla le note di apt upgrade per CVE-2026-31431), dovresti ripristinare le capacità crittografiche native:
chmod +x unpatch-CVE-2026-31431.sh
sudo ./unpatch-CVE-2026-31431.sh
La protezione si basa sulla seguente direttiva all'interno di /etc/modprobe.d/cve-2026-31431-mitigation.conf:
blacklist algif_aead
install algif_aead /bin/true
Il comando install reindirizza il tentativo del kernel di caricare il modulo a /bin/true, che restituisce un codice di uscita di "successo" senza eseguire alcun codice vulnerabile.