
Mitigação rápida e auditável para Linux para CVE-2026-31431 Copy Fail: bloqueio algif_aead, verificação e reforço seccomp AF_ALG.
______ ______ _ __ ______ __
/ ____/___ ____ __ _/ ____/___ _(_) / / ____/_ ______ __________/ /
/ / / __ \/ __ \/ / / / /_ / __ `/ / / / / __/ / / / __ `/ ___/ __ /
/ /___/ /_/ / /_/ / /_/ / __/ / /_/ / / / / /_/ / /_/ / /_/ / / / /_/ /
\____/\____/ .___/\__, /_/ \__,_/_/_/ \____/\__,_/\__,_/_/ \__,_/
/_/ /____/
Avaliação e mitigação rápida e auditável da exposição Linux para CVE-2026-31431 “Copy Fail” enquanto os kernels são corrigidos.
CopyFail Guard é uma ferramenta de operações defensivas para administradores Linux, engenheiros DevSecOps, equipes de plataforma e respondedores de incidentes. Ela ajuda a reduzir a exposição ao problema do Linux algif_aead / AF_ALG ao:
algif_aead está disponível, carregado, embutido ou já bloqueadomodprobe.d e descarregar o módulo quando seguroCorreção definitiva: instale o kernel corrigido do seu fornecedor e reinicie.
Esta ferramenta cobre a lacuna operacional entre a divulgação e a correção completa da frota.
splice, alterações no setuid, escalonamento de privilégios ou sondagens destrutivas./etc/modprobe.d/99-copyfail-guard.conf, e a reversão remove apenas esse arquivo.seccomp-patch adiciona uma negação de AF_ALG a um perfil seccomp existente do Docker/Podman/Kubernetes, em vez de substituir sua proteção de tempo de execução.assess --json e códigos de saída documentados suportam varreduras de frota, captura em SIEM e evidências para gerenciamento de mudanças.Se você está em um host Linux e precisa de uma resposta rápida:
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 o veredito for exposto e algif_aead for modular:
sudo ./bin/copyfail-guard.sh mitigate --yes
sudo ./bin/copyfail-guard.sh verify
Para instalações repetíveis, fixe uma tag de release:
git clone --branch v0.3.0 --depth 1 https://github.com/juliosuas/copyfail-guard.git
Substitua v0.3.0 pela última release marcada quando novas versões estiverem disponíveis.
Execute primeiro a verificação segura de exposição:
sudo ./bin/copyfail-guard.sh assess
Como interpretar o resultado:
| Família de veredito | O que significa | O que fazer |
|---|---|---|
EXPOSED_* | algif_aead / AF_ALG parece acessível ou carregável | Mitigue agora, depois corrija e reinicie |
PARTIALLY_MITIGATED_* | Um bloqueio existe, mas o módulo carregado ou o estado de reinicialização ainda importa | Reinicie ou descarregue com segurança, depois verifique |
INTERIM_MITIGATED_* | Mitigação local está ativa | Mantenha-a, mas ainda corrija e reinicie |
LOW_OBVIOUS_EXPOSURE_* | Verificações locais não encontraram exposição óbvia a algif_aead | Confirme o status do patch do fornecedor de qualquer forma |
Se você executa contêineres não confiáveis, jobs de CI, sandboxes ou cargas de trabalho multi-usuário, teste também se a criação de soquetes AF_ALG está bloqueada dentro desse ambiente de execução:
python3 tools/afalg-socket-test.py
PERMITTED não prova exploração bem-sucedida, mas prova que a API de criptografia do espaço do usuário relevante está acessível. Para operações defensivas, isso é motivo suficiente para aplicar a mitigação enquanto confirma a implantação do kernel corrigido.
Nenhum proof-of-concept destrutivo está incluído. Isso é uma característica, não uma lacuna.
Um exploit real do Copy Fail precisaria validar o impacto na memória do kernel/cache de páginas ou escalonamento de privilégios. Distribuir isso em um repositório público de mitigação tornaria o projeto menos seguro e menos implantável em produção.
O CopyFail Guard prova o que os operadores podem agir com segurança:
Para o status final da vulnerabilidade, combine esta ferramenta com o inventário de pacotes/avisos do fornecedor e evidências de reinicialização.
CopyFail Guard é mitigação, não cura. Reduz a exposição e verifica controles provisórios. A correção duradoura continua sendo o kernel corrigido pelo fornecedor mais a reinicialização.
A ferramenta é intencionalmente clonável e executável para resposta a incidentes: nenhum compilador, cabeçalhos de kernel, código de exploração ou gerenciador de pacotes de terceiros é necessário para o fluxo de trabalho principal do host. python3 é necessário para saída --json, seccomp-patch e o teste de soquete AF_ALG não-exploratório.
Clone e execute:
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
Instalação opcional no sistema:
git clone https://github.com/juliosuas/copyfail-guard.git
cd copyfail-guard
sudo ./scripts/install.sh
sudo copyfail-guard status
O instalador suporta fixar a origem e o destino para implantações controladas:
sudo env COPYFAIL_GUARD_REF=v0.3.0 ./scripts/install.sh
Use a última release marcada para COPYFAIL_GUARD_REF quando novas versões estiverem disponíveis.
Proteção de contêiner / CI:
./bin/copyfail-guard.sh seccomp-patch docker-default.json copyfail-seccomp.json
docker run --security-opt seccomp=./copyfail-seccomp.json IMAGEM
Valide que o AF_ALG está bloqueado dentro de um contêiner protegido:
docker run --rm \
--security-opt seccomp=./copyfail-seccomp.json \
-v "$PWD/tools:/tools:ro" \
python:3.12-alpine \
python /tools/afalg-socket-test.py
Resultado esperado em ambiente protegido:
BLOCKED: socket(AF_ALG) denied by policy (...)
Veja Exemplos de saída para vereditos esperados, formato JSON e resultados de validação em contêiner.