
Rileva e mitiga CVE-2026-31431 (Copy Fail) su Linux sondando la vulnerabilità AF_ALG e, opzionalmente, inserendo in blacklist il modulo interessato.
Rileva e (opzionalmente) mitiga la CVE-2026-31431 ("Copy Fail") su un host Linux.
La vulnerabilità è una primitiva di scrittura nella page cache raggiungibile tramite la famiglia di socket AF_ALG usando la trasformazione AEAD authencesn(hmac(sha256),cbc(aes)). Questo script riproduce la stessa primitiva dimostrata da Theori, ma mirata a un file temporaneo creato da sé piuttosto che a un binario setuid, quindi il test in sé non è distruttivo.
Se il kernel è vulnerabile, lo script offre di applicare una mitigazione: mettere in blacklist algif_aead tramite /etc/modprobe.d/disable-algif-aead.conf e scaricare il modulo. È comunque necessario un aggiornamento del kernel per una correzione completa.
os.splice)uv per eseguire lo script con una versione di Python bloccatasudo / root — necessario per applicare la mitigazione (scrittura in /etc/modprobe.d e rmmod); la sola rilevazione funziona senza privilegi, ma lo script chiede in modo interattivo se applicare la patchsudo $(which uv) run --python 3.10 /percorso/di/copy_fail_test.py
$(which uv) viene usato così sudo mantiene il binario uv corretto nel PATH.
Lo script:
AF_ALG + authencesn(hmac(sha256),cbc(aes)) è raggiungibile.✅ NON VULNERABILE — uscita 0🚨 VULNERABILE — chiede di applicare la mitigazione, poi riesegue il test⚠️ NON CONCLUDENTE — uscita 2 (ad es. la chiamata splice/sendmsg ha restituito un errore)Se accetti il prompt, lo script:
install algif_aead /bin/false in /etc/modprobe.d/disable-algif-aead.conf.rmmod algif_aead.Se il modulo è compilato nel kernel (non caricabile), è necessario un riavvio affinché la blacklist abbia effetto. In ogni caso, applica la patch al kernel quando è disponibile un aggiornamento — la blacklist rimuove solo un punto di ingresso.
Equivalente manuale:
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif-aead.conf
rmmod algif_aead 2>/dev/null
La fase di rilevazione scrive su un tempfile.NamedTemporaryFile che crea e poi elimina; nessun file di sistema viene toccato. La fase di mitigazione è l'unica parte che modifica l'host, e solo se confermi al prompt.