
Script di mitigazione per-distro per CVE-2026-31431 ("Copy Fail") LPE del kernel Linux.
Script di mitigazione per-distro per CVE-2026-31431 ("Copy Fail") — un'escalation di privilegi locale del kernel Linux algif_aead che colpisce praticamente ogni distro rilasciata dal 2017.
Ogni script installa un kernel patchato dai repository della tua distribuzione (quando disponibile) oppure, in caso contrario, mette in blacklist il modulo kernel vulnerabile algif_aead così che il percorso di exploit sia chiuso finché non puoi riavviare su un kernel corretto.
Scegli lo script per la tua distro, controllalo, eseguilo come root.
# Ubuntu
sudo bash scripts/ubuntu.sh
# Debian
sudo bash scripts/debian.sh
# RHEL / Rocky / AlmaLinux / CentOS Stream
sudo bash scripts/rhel.sh
# Fedora
sudo bash scripts/fedora.sh
# Arch
sudo bash scripts/arch.sh
# openSUSE Leap / Tumbleweed
sudo bash scripts/opensuse.sh
# Alpine
sudo bash scripts/alpine.sh
# Qualsiasi altra cosa (Gentoo, NixOS, distro immutabili, ...)
sudo bash scripts/universal.sh
Usa prima --check se vuoi un'anteprima che non modifica nulla.
Gli script per-distro eseguono questo algoritmo; universal.sh salta i passaggi 4–5.
sudo se non è già root.--force.uname -r.PATCHED_KERNEL_VERSION è registrato per la tua distro e il kernel in esecuzione è uguale o superiore, lo script rimuove qualsiasi file di mitigazione residuo ed esce.--yes per saltare) di installarlo. Dopo l'installazione, riavvii manualmente./etc/modprobe.d/cve-2026-31431.conf con blacklist algif_aead e install algif_aead /bin/true, poi verifica tramite una sonda socket-bind AF_ALG che il percorso di exploit sia chiuso.PATCHED_KERNEL_VERSION = PENDING significa che i maintainer non hanno ancora registrato una versione kernel corretta per quella distro. Ogni riga si aggiorna tramite una PR di una riga.
| Distro | Pacchetto kernel | Versione patchata | Ultimo controllo |
|---|---|---|---|
| Ubuntu (24.04) | linux-image-generic | PENDING | 2026-05-01 |
| Debian | linux-image-amd64 | PENDING | 2026-05-01 |
| RHEL / Rocky / Alma | kernel | PENDING | 2026-05-01 |
| Fedora | kernel | PENDING | 2026-05-01 |
| Arch | linux | PENDING | 2026-05-01 |
| openSUSE | kernel-default | PENDING | 2026-05-01 |
| Alpine | linux-lts | PENDING | 2026-05-01 |
| Flag | Significato |
|---|---|
-y, --yes | Non interattivo; salta il prompt di installazione del kernel. |
--force | Ignora il controllo di corrispondenza della distro. |
--check | Anteprima sola lettura; stampa cosa accadrebbe, non modifica nulla. |
--undo | Rimuove /etc/modprobe.d/cve-2026-31431.conf. Da usare dopo l'installazione di un kernel patchato. |
-h, --help | Informazioni sull'uso. |
Gli script eseguono questa sonda automaticamente. Per verificare tu stesso:
python3 - <<'PY'
import socket, errno
try:
s = socket.socket(socket.AF_ALG, socket.SOCK_SEQPACKET, 0)
s.bind(("aead", "authencesn(hmac(sha1),cbc(aes))"))
print("BAD: bind succeeded — host is NOT mitigated")
s.close()
except OSError as e:
print(f"OK: bind blocked, errno={e.errno} ({e.strerror})" if e.errno == errno.ENOENT
else f"INCONCLUSIVE: errno={e.errno}")
PY
Un host mitigato o patchato stampa OK: bind blocked, errno=2 ....
Dopo che la tua distro pubblica un kernel corretto e riavvii su di esso, rimuovi il blacklist di modprobe così che le applicazioni che usano legittimamente AF_ALG aead possano funzionare di nuovo:
sudo bash scripts/<la-tua-distro>.sh --undo
Quando la tua distro pubblica un kernel corretto:
scripts/<distro>.sh — imposta PATCHED_KERNEL_VERSION alla versione del pacchetto corretto (nel formato restituito da dpkg-query -W / rpm -q VERSIONE-RELEASE / pacman -Q).<distro>: fix shipped in <versione>.Strumentazione di mitigazione della sicurezza. Controlla qualsiasi script trovato su internet prima di passarlo a sudo bash. I maintainer non accettano alcuna responsabilità sotto la licenza MIT.
MIT.