## https://sploitus.com/exploit?id=64FFC095-25D3-5EF2-9202-60B8BCE8ABA6
# copyfail-guard
Ferramenta de **detecção e mitigação automatizada** para a vulnerabilidade
[CVE-2026-31431 ("Copy Fail")](https://copy.fail), uma escalada de privilégios
local (LPE) no módulo `algif_aead` (interface `AF_ALG`) do kernel Linux.
> ⚠️ **Escopo:** este projeto é puramente **defensivo**. Ele não contém,
> não gera e não referencia código de exploração. O objetivo é permitir que
> times de segurança e administradores de sistema (1) identifiquem hosts
> expostos e (2) apliquem a mitigação recomendada (bloqueio do módulo
> `algif_aead`) até que o kernel corrigido seja instalado.
## O que a ferramenta faz
1. **Detecção** (`--check`)
- Lê a versão do kernel em execução (`uname -r`)
- Verifica se o módulo `algif_aead` está carregado ou disponível para
carregamento
- Consulta o changelog do pacote de kernel instalado (`apt`/`dpkg`,
`rpm`, `zypper`) em busca de referência ao patch/CVE
- Identifica a distribuição via `/etc/os-release`
- Retorna um veredito: `VULNERÁVEL`, `MITIGADO` (módulo bloqueado),
`CORRIGIDO` (kernel já contém o patch) ou `INDETERMINADO`
2. **Mitigação** (`--mitigate`, requer root)
- Cria `/etc/modprobe.d/disable-algif-aead-cve-2026-31431.conf` com
`install algif_aead /bin/false` e `blacklist algif_aead`
- Remove o módulo da memória se já estiver carregado (`rmmod`)
- Reexecuta a checagem de detecção para confirmar que a mitigação
surtiu efeito
- Operação **idempotente**: pode ser executada quantas vezes for
necessário sem efeitos colaterais
3. **Relatório** (`--report json|text`)
- Saída legível para humanos ou JSON estruturado, pronta para
alimentar SIEM, pipelines de auditoria de ativos, ou dashboards
## Uso rápido
```bash
# Apenas diagnosticar (não requer root)
sudo ./bin/copyfail-guard --check
# Diagnosticar e aplicar mitigação temporária
sudo ./bin/copyfail-guard --mitigate
# Saída em JSON para integração com outras ferramentas
sudo ./bin/copyfail-guard --check --report json
```
Requisitos: Python 3.8+, Bash, acesso root apenas para `--mitigate`
(a checagem funciona sem privilégios elevados, com informação limitada).
## Aviso importante
- A mitigação (bloqueio de `algif_aead`) é **temporária**. Ela reduz a
superfície de ataque mas **não substitui a atualização do kernel**.
Assim que o pacote de kernel corrigido (contendo o commit
`a664bf3d603d` ou backport equivalente) estiver disponível para sua
distribuição, ele deve ser aplicado e o sistema reiniciado.
- Ambientes que dependem de `algif_aead` (uso direto de `AF_ALG` para
AEAD via userspace) podem ter funcionalidade impactada pela mitigação.
`dm-crypt`/LUKS, kTLS, IPsec, SSH e builds padrão de OpenSSL/GnuTLS
normalmente **não** dependem de `AF_ALG` e não são afetados.
## Estrutura do repositório
```
copyfail-guard/
├── bin/
│ └── copyfail-guard # entrypoint (bash) -> chama o módulo Python
├── copyfail_guard/
│ ├── __init__.py
│ ├── detect.py # lógica de detecção
│ ├── mitigate.py # lógica de mitigação
│ └── report.py # formatação de saída (texto/JSON)
├── tests/
│ └── test_detect.py
├── LICENSE
└── README.md
```
## Referências
- copy.fail
- NVD — CVE-2026-31431
- Red Hat RHSB-2026-002
- Ubuntu Security Notices (discourse.ubuntu.com)
- Sysdig / Unit 42 / Tenable / Microsoft Security Blog (análises técnicas)
## Licença
MIT — veja [LICENSE](./LICENSE).