
# Ruolo Ansible che applica e verifica la mitigazione modprobe.d per CVE-2026-31431 disabilitando il modulo kernel algif_aead, con controlli di sicurezza per i sistemi della famiglia Debian.
Ruolo Ansible per applicare (e successivamente rimuovere) la mitigazione modprobe.d per
CVE-2026-31431 ("Copy Fail") nel sottosistema AF_ALG / algif_aead del kernel Linux.
Testato su Debian. Pull request per altre distribuzioni, casi limite o miglioramenti sono molto graditi.
Il ruolo inserisce un frammento di configurazione in /etc/modprobe.d/ che impedisce
il caricamento del modulo del kernel algif_aead:
install algif_aead /bin/false
Verifica quindi che la mitigazione sia effettivamente efficace:
/boot/config-$(uname -r) e rifiutandosi di eseguire se AEAD è compilato
nel kernel (CONFIG_CRYPTO_USER_API_AEAD=y) — modprobe.d non può bloccare
il codice integrato.algif_aead non sia attualmente presente in lsmod.AF_ALG e tenta di
eseguire bind() su aead/gcm(aes). Dopo la mitigazione, il bind deve fallire con
FileNotFoundError.Non è richiesto alcun riavvio.
Per annullare (ad esempio una volta installato un kernel patchato), impostare
cve_2026_31431_state=absent.
La mitigazione circolata su oss-security — inserire
install algif_aead /bin/false in /etc/modprobe.d/ e rimuovere il modulo con rmmod —
non funziona su CloudLinux, AlmaLinux, RHEL o qualsiasi altra distribuzione
della famiglia RHEL, e non funziona su kernel personalizzati compilati con
AEAD incluso.
Su quei sistemi algif_aead è compilato nel kernel
(CONFIG_CRYPTO_USER_API_AEAD=y), quindi:
modprobe.d non possono bloccare il caricamento (non c'è nulla da caricare — il
codice è già nell'immagine del kernel).rmmod algif_aead non può rimuovere il codice integrato.I comandi sembrano avere successo ma lasciano il sistema invariato, dando una falsa sensazione di protezione. Puoi verificare se il tuo kernel è interessato:
zgrep '^CONFIG_CRYPTO_USER_API_AEAD=' /boot/config-$(uname -r)
=m → modulo, questo ruolo può mitigare.=y → integrato, serve un aggiornamento del kernel + riavvio o un abbonamento
a livepatch. Questo ruolo rileverà la condizione e si rifiuterà di eseguire.| Nome | Default | Note |
|---|---|---|
cve_2026_31431_state | present | Impostare su absent per rimuovere la mitigazione |
cve_2026_31431_conf | /etc/modprobe.d/disable-algif_aead.conf | Percorso del file di blacklist |
ansible-galaxy install joltcan.cve_2026_31431
ansible-playbook -i <your-inventory> ~/.ansible/roles/joltcan.cve_2026_31431/playbook.yml
Pulizia una volta che il kernel patchato è in esecuzione:
ansible-playbook -i <your-inventory> ~/.ansible/roles/joltcan.cve_2026_31431/playbook.yml -e cve_2026_31431_state=absent
- hosts: all
become: true
roles:
- role: joltcan.cve_2026_31431
Issue e pull request sono benvenute — in particolare:
algif_aead è caricabile
(Arch, Gentoo, Alpine, ecc.).algif_aead già caricato quando non ci sono
utenti AF_ALG attivi.MIT — vedi LICENSE.