
Rileva l'esposizione a CVE-2026-31431 (Copy Fail) e, opzionalmente, mitiga disabilitando il modulo del kernel vulnerabile algif_aead, fornendo verdetti e stato della patch.
Rileva l'esposizione a CVE-2026-31431 (Copy Fail) e, opzionalmente, applica una mitigazione a livello di host disabilitando il modulo del kernel algif_aead sui sistemi vulnerabili.
copyfail-check.sh — verifica lo stato della patch del kernel, l'esposizione del modulo a runtime e lo stato della mitigazione.--mitigate.NOT AFFECTED, PATCHED, NOT EXPLOITABLE, MITIGATED, MITIGATED (REBOOT PENDING) o AFFECTED.| Proprietà | Valore |
|---|---|
| ID CVE | CVE-2026-31431 |
| Gravità | ALTA (CVSS 3.1: 7.8) |
| Componente | algif_aead — interfaccia crittografica AEAD AF_ALG del kernel |
| Tipo di attacco | Escalation dei privilegi locale; fuga dal container (nessun PoC pubblico ancora) |
| Kernel interessati | 4.14 e successivi (vedi sotto) |
| Divulgata | 2026-04-29 |
Un'ottimizzazione AEAD in-place del 2017 (commit 72548b093ee3, kernel 4.14) consente a un attaccante locale non privilegiato di ottenere una primitiva di scrittura controllata nella cache delle pagine contro qualsiasi file leggibile, consentendo l'escalation dei privilegi a root. Negli ambienti container, la stessa primitiva può facilitare la fuga dal container.
I kernel precedenti alla 4.14 NON sono interessati. Questo include il kernel 3.13 di Ubuntu (Trusty 14.04 GA) e il kernel 4.4 (Xenial 16.04 GA, Trusty HWE) — questi precedono il commit vulnerabile.
| Ruolo | Commit |
|---|---|
| Vulnerabilità introdotta | 72548b093ee3 (kernel 4.14, 2017) |
| Fix — mainline / kernel 7.0 | a664bf3d603d |
| Fix — stabile 6.18.x | fafe0fa2995a |
| Fix — stabile 6.19.x | ce42ee423e58 |
Le distribuzioni applicano backport delle patch con i propri identificativi di commit. Lo script cerca l'ID CVE nei changelog dei pacchetti, che è più affidabile degli hash upstream per i kernel con backport.
| Release | kernel linux | mitigazione kmod (versione corretta) |
|---|---|---|
| Trusty 14.04 | solo kernel 4.15; 3.13 e 4.4 NON interessati | 15-0ubuntu7+esm1 |
| Xenial 16.04 | solo kernel 4.15; 4.4 NON interessato | 22-1ubuntu5.2+esm1 |
| Bionic 18.04 | Interessata | 24-1ubuntu3.5+esm1 |
| Focal 20.04 | Interessata | 27-1ubuntu2.1+esm1 |
| Jammy 22.04 | Interessata | 29-1ubuntu1.1 |
| Noble 24.04 | Interessata | 31+20240202-2ubuntu7.2 |
| Questing 25.10 | Interessata | 34.2-2ubuntu1.1 |
| Resolute 26.04 | Non interessata | Nessun aggiornamento necessario |
L'Ubuntu Security Team distribuisce un aggiornamento del pacchetto kmod che scrive install algif_aead /bin/false in /etc/modprobe.d/disable-algif_aead.conf. Questo script crea lo stesso file con lo stesso contenuto ed è pienamente compatibile con tale approccio. Applicare l'aggiornamento ufficiale del pacchetto (sudo apt install --only-upgrade kmod) è il percorso consigliato su Ubuntu; questo script fornisce una copertura equivalente per sistemi non Ubuntu o per il triage pre-aggiornamento.
chmod +x copyfail-check.sh
sudo ./copyfail-check.sh # solo rilevamento
sudo ./copyfail-check.sh --mitigate # rilevamento + applicazione mitigazione se interessato
Trasmetti lo script direttamente da main ed eseguilo. La forma bash -s -- inoltra gli argomenti dopo -- allo script stesso, quindi --mitigate raggiunge lo script e non bash.
# Solo rilevamento
curl -fsSL https://raw.githubusercontent.com/Webhosting4U/Copy-Fail_Detect_and_mitigate_CVE-2026-31431/main/copyfail-check.sh | sudo bash
# Rilevamento + mitigazione
curl -fsSL https://raw.githubusercontent.com/Webhosting4U/Copy-Fail_Detect_and_mitigate_CVE-2026-31431/main/copyfail-check.sh | sudo bash -s -- --mitigate
Equivalenti con wget:
wget -qO- https://raw.githubusercontent.com/Webhosting4U/Copy-Fail_Detect_and_mitigate_CVE-2026-31431/main/copyfail-check.sh | sudo bash
wget -qO- https://raw.githubusercontent.com/Webhosting4U/Copy-Fail_Detect_and_mitigate_CVE-2026-31431/main/copyfail-check.sh | sudo bash -s -- --mitigate
Nota di sicurezza. Trasmettere uno script remoto direttamente in una shell privilegiata si fida di ciò che l'URL serve al momento dell'esecuzione. Per un triage una tantum è accettabile; per un uso ripetuto o in produzione, fissa un commit specifico e ispeziona prima lo script:
curl -fsSL https://raw.githubusercontent.com/Webhosting4U/Copy-Fail_Detect_and_mitigate_CVE-2026-31431/<commit-sha>/copyfail-check.sh -o copyfail-check.sh less copyfail-check.sh sudo bash copyfail-check.sh --mitigate
NOT AFFECTED/sys/kernel/livepatch/, più kpatch list e canonical-livepatch statusubuntu-security-status --cves, dnf updateinfo list cves, zypper patch-checkalgif_aead (modinfo) e stato di caricamento (lsmod)/etc/modprobe.d/ — accetta neutralizzatori equivalenti (install … /bin/false|/bin/true|/sbin/nologin) e blacklist; identifica se il blocco proviene dal pacchetto kmod di Ubuntu/proc/modules (colonna 3); segnala anche un riferimento al motore afalg di OpenSSL in /etc/ssl o /etc/pki/tls| Verdetto | Significato |
|---|---|
NOT AFFECTED | Il kernel precede la 4.14, oppure è patchato e il modulo non è disponibile |
PATCHED | Il changelog/strumentazione del kernel conferma che il fix è presente |
NOT EXPLOITABLE | Il modulo non è disponibile su questo sistema |
MITIGATED | Modulo bloccato tramite modprobe.d; kernel ancora non patchato — aggiorna quando possibile |
MITIGATED (REBOOT PENDING) | Blocco scritto ma modulo ancora caricato; scarica con rmmod o riavvia |
AFFECTED | Il kernel è nell'intervallo vulnerabile e algif_aead è disponibile |
Quando --mitigate viene usato su un sistema interessato, lo script:
/etc/modprobe.d/disable-algif_aead.conf contenente install algif_aead /bin/falsealgif_aead se attualmente caricatoIl nome file /etc/modprobe.d/disable-algif_aead.conf corrisponde al file scritto dall'aggiornamento ufficiale del pacchetto kmod di Ubuntu, quindi entrambi gli approcci sono intercambiabili e compatibili.