
Mitigazione rapida e verificabile per Linux di CVE-2026-31431 Copy Fail: blocco algif_aead, verifica e hardening seccomp di AF_ALG.
______ ______ _ __ ______ __
/ ____/___ ____ __ _/ ____/___ _(_) / / ____/_ ______ __________/ /
/ / / __ \/ __ \/ / / / /_ / __ `/ / / / / __/ / / / __ `/ ___/ __ /
/ /___/ /_/ / /_/ / /_/ / __/ / /_/ / / / / /_/ / /_/ / /_/ / / / /_/ /
\____/\____/ .___/\__, /_/ \__,_/_/_/ \____/\__,_/\__,_/_/ \__,_/
/_/ /____/
Valutazione rapida e verificabile dell'esposizione Linux e mitigazione per CVE-2026-31431 “Copy Fail” in attesa delle patch del kernel.
CopyFail Guard è uno strumento operativo difensivo per amministratori Linux, ingegneri DevSecOps, team di piattaforma e responder di incidenti. Aiuta a ridurre l'esposizione al problema Linux algif_aead / AF_ALG:
algif_aead è disponibile, caricato, integrato nel kernel o già bloccatomodprobe.d e scaricando il modulo quando è sicuroCorrezione definitiva: installare il kernel patchato del proprio fornitore e riavviare.
Questo strumento copre il divario operativo tra la divulgazione e la patch completa su tutta la flotta.
splice, modifiche setuid, escalation dei privilegi o sonde distruttive./etc/modprobe.d/99-copyfail-guard.conf, e il rollback rimuove solo quel file.seccomp-patch aggiunge una negazione AF_ALG a un profilo seccomp esistente di Docker/Podman/Kubernetes invece di sostituire la tua protezione runtime.assess --json e codici di uscita documentati supportano scansioni su flotta, acquisizione SIEM e prove per la gestione dei cambiamenti.Se sei su un host Linux e hai bisogno di una risposta rapida:
git clone --depth 1 https://github.com/juliosuas/copyfail-guard.git
cd copyfail-guard
sudo ./bin/copyfail-guard.sh doctor
sudo ./bin/copyfail-guard.sh assess
Se il verdetto è esposto e algif_aead è modulare:
sudo ./bin/copyfail-guard.sh mitigate --yes
sudo ./bin/copyfail-guard.sh verify
Per installazioni ripetibili, pinna un tag di rilascio:
git clone --branch v0.3.0 --depth 1 https://github.com/juliosuas/copyfail-guard.git
Sostituisci v0.3.0 con l'ultima release taggata quando saranno disponibili nuove versioni.
Esegui prima il controllo di esposizione sicuro:
sudo ./bin/copyfail-guard.sh assess
Come leggere il risultato:
| Famiglia di verdetto | Cosa significa | Cosa fare |
|---|---|---|
EXPOSED_* | algif_aead / AF_ALG sembra raggiungibile o caricabile | Mitiga ora, poi patch e riavvia |
PARTIALLY_MITIGATED_* | Esiste un blocco ma il modulo caricato o lo stato di riavvio conta ancora | Riavvia o scarica in sicurezza, poi verifica |
INTERIM_MITIGATED_* | La mitigazione locale è attiva | Mantienila, ma applica comunque patch e riavvia |
LOW_OBVIOUS_EXPOSURE_* | I controlli locali non hanno trovato esposizione evidente a algif_aead | Conferma comunque lo stato della patch del fornitore |
Se esegui contenitori non fidati, job CI, sandbox o carichi di lavoro multi-utente, verifica anche se la creazione di socket AF_ALG è bloccata all'interno di quel runtime:
python3 tools/afalg-socket-test.py
PERMITTED non prova un exploit riuscito, ma dimostra che l'API crittografica userspace pertinente è raggiungibile. Per operazioni difensive, questo è motivo sufficiente per applicare la mitigazione mentre confermi il rollout del kernel patchato.
Non è incluso alcun proof-of-concept distruttivo. Questa è una caratteristica, non una lacuna.
Un vero proof di exploit di Copy Fail dovrebbe convalidare l'impatto sulla memoria del kernel/cache delle pagine o l'escalation dei privilegi. Distribuirlo in un repository di mitigazione pubblico renderebbe il progetto meno sicuro e meno distribuibile in produzione.
CopyFail Guard dimostra ciò su cui gli operatori possono agire in sicurezza:
Per lo stato finale della vulnerabilità, combina questo strumento con advisories/ inventario dei pacchetti del fornitore e prove di riavvio.
CopyFail Guard è mitigazione, non cura. Riduce l'esposizione e verifica i controlli provvisori. La correzione durevole rimane il kernel patchato dal fornitore più il riavvio.
Lo strumento è intenzionalmente clone-and-run per la risposta agli incidenti: non è richiesto compilatore, header del kernel, codice exploit o gestore di pacchetti di terze parti per il flusso di lavoro principale dell'host. python3 è necessario per l'output --json, seccomp-patch e il test socket AF_ALG non exploit.
Clone-and-run:
git clone https://github.com/juliosuas/copyfail-guard.git
cd copyfail-guard
chmod +x bin/copyfail-guard.sh
sudo ./bin/copyfail-guard.sh doctor
sudo ./bin/copyfail-guard.sh assess
sudo ./bin/copyfail-guard.sh mitigate --yes
sudo ./bin/copyfail-guard.sh verify
Installazione opzionale di sistema:
git clone https://github.com/juliosuas/copyfail-guard.git
cd copyfail-guard
sudo ./scripts/install.sh
sudo copyfail-guard status
L'installer supporta il pinning della sorgente e della destinazione per rollout controllati:
sudo env COPYFAIL_GUARD_REF=v0.3.0 ./scripts/install.sh
Usa l'ultima release taggata per COPYFAIL_GUARD_REF quando saranno disponibili nuove versioni.
Rafforzamento container / CI:
./bin/copyfail-guard.sh seccomp-patch docker-default.json copyfail-seccomp.json
docker run --security-opt seccomp=./copyfail-seccomp.json IMAGE
Verifica che AF_ALG sia bloccato all'interno di un container protetto:
docker run --rm \
--security-opt seccomp=./copyfail-seccomp.json \
-v "$PWD/tools:/tools:ro" \
python:3.12-alpine \
python /tools/afalg-socket-test.py
Risultato atteso protetto:
BLOCKED: socket(AF_ALG) denied by policy (...)
Vedi Output di esempio per verdetti attesi, struttura JSON e risultati di convalida dei container.