
Script Bash per rilevare e mitigare CVE-2026-31431 (Copy Fail), escalation di privilegi locale nel kernel Linux tramite socket AF_ALG, inclusa la disattivazione del modulo e la configurazione di seccomp.
Questo progetto fornisce una serie di script Bash per rilevare e mitigare la vulnerabilità di escalation dei privilegi locali CVE-2026-31431 (nota anche come "Copy Fail") nel kernel Linux.
a664bf3d603d e patch successiveLa vulnerabilità risiede nell'implementazione dei socket AF_ALG nel kernel Linux; un attaccante potrebbe ottenere un'escalation dei privilegi locali costruendo specifiche operazioni di bind authencesn.
| File | Scopo | Permessi di esecuzione |
|---|---|---|
check_cve_2026_31431.sh | Rilevamento dell'impatto della vulnerabilità e valutazione del rischio | Utente normale o root |
cve-2026-31431-mitigate.sh | Esecuzione delle misure di mitigazione (disabilitazione moduli, generazione configurazione seccomp) | Richiede root |
bash check_cve_2026_31431.sh
Lo script controlla i seguenti elementi:
CONFIG_CRYPTO_USER_API_AEADalgif_aead / af_algauthencesn (per determinare se la mitigazione è già applicata)L'output finale fornisce il livello di rischio complessivo: UNKNOWN / LOW / MEDIUM / HIGH.
Nota: lo script di mitigazione richiede privilegi di root.
sudo bash cve-2026-31431-mitigate.sh
Le operazioni di mitigazione includono:
/etc/modprobe.d/disable-algif-aead.conf per impedire il caricamento del modulo algif_aeadalgif_aead è già caricato, tentativo di rimozione (rmmod)depmod -a per aggiornare le dipendenze dei modulisudo bash cve-2026-31431-mitigate.sh --verify-only # Solo verifica, senza scrivere configurazioni
sudo bash cve-2026-31431-mitigate.sh --write-seccomp # Genera inoltre una configurazione seccomp per Docker
sudo bash cve-2026-31431-mitigate.sh --seccomp-path /path # Specifica il percorso di output seccomp
Il criterio di riferimento per determinare se la mitigazione è efficace: il bind authencesn fallisce.
Il "Controllo 5: verifica della mitigazione (bind authencesn)" dello script di rilevamento tenta di eseguire:
import socket
s = socket.socket(38, 5, 0) # AF_ALG
s.bind(("aead", "authencesn(hmac(sha256),cbc(aes))"))
CONFIG_CRYPTO_USER_API_AEAD=y (compilato staticamente nel kernel), la disabilitazione del modulo di solito non è efficace; è necessario aggiornare il kernel.algif_aead è attualmente in uso, rmmod potrebbe non riuscire a rimuoverlo; si consiglia di verificare dopo un riavvio nella finestra di manutenzione.socket(AF_ALG).a664bf3d603d e le patch successive.Gli script sono stati testati nei seguenti ambienti:
grep, sed, lsmod, modprobe, rmmod, depmod)python3 o python (per la verifica dei socket AF_ALG)Licenza MIT
Gli script forniti in questo progetto sono destinati esclusivamente al rilevamento di sicurezza e alla mitigazione temporanea e non sostituiscono l'aggiornamento con la patch ufficiale del kernel. Prima di utilizzare questi script, assicurarsi di comprenderne appieno le operazioni (come la disabilitazione dei moduli del kernel) e di verificarli prima in un ambiente di test. L'autore non è responsabile per eventuali perdite dirette o indirette derivanti dall'uso di questo strumento.