
Copy-Fail-CVE-2026-31431-Lab — Updated!
Reproduzi o LPE sem arquivo CVE‑2026‑31431 (“Falha de Cópia”) no Kali Linux, depois construí detecções auditd, Sigma e YARA para capturar esse exploit furtivo de kernel que não deixa vestígios em disco.
Copy Fail (CVE-2026-31431) — Laboratório de Reprodução e Detecção de Exploit
Este repositório documenta a reprodução de ponta a ponta, a engenharia de detecção e a resposta a incidentes para CVE-2026-31431 ("Copy Fail"), uma vulnerabilidade crítica de escalonamento de privilégios local no kernel Linux que afeta os kernels 4.14 até 7.0-rc.
Principais Descobertas
- ✅ CVE-2026-31431 explorado com sucesso no Kali Linux 2026.1 (kernel 6.18.12+kali-amd64)
- ✅ Regras de detecção em nível de chamadas de sistema implantadas com auditd
- ✅ Regras Sigma e YARA criadas para detecção multiplataforma
- ✅ Um playbook completo de resposta a incidentes foi desenvolvido
Por Que Isso Importa
Copy Fail é uma falha lógica, não uma corrupção de memória. Ela é determinística, afeta praticamente todas as distribuições Linux lançadas desde 2017 e é completamente fileless—o monitoramento tradicional de integridade de arquivos (AIDE, Tripwire) não consegue vê-la. Uma prova de conceito funcional cabe em apenas 732 bytes de Python.
Ambiente de Laboratório
| Componente | Detalhes |
|---|---|
| Hipervisor | VirtualBox |
| VM Alvo | Kali Linux 2026.1 |
| Kernel | 6.18.12+kali-amd64 |
| PoC do Exploit | theori-io/copy-fail-CVE-2026-31431 |
| Detecção | auditd, Sigma, YARA |
Etapas de Reprodução
1. Verificar Versão do Kali e Kernel
O laboratório começa confirmando que o alvo está executando um kernel vulnerável.
Detalhes da versão e do kernel do Kali Linux 2026.1.
Saída de uname -r mostrando o kernel vulnerável 6.18.12+kali-amd64.
2. Verificar Módulo Vulnerável
O exploit requer o módulo do kernel algif_aead e o template criptográfico authencesn.
Módulo Carregado
lsmod e modinfo confirmam que algif_aead está disponível; /proc/crypto mostra o template vulnerável authencesn.
3. Versão do Python
O PoC usa os.splice, que requer Python 3.10+. Verificamos o interpretador.
Versão do Python Python 3.12 está instalado e pronto.
4. Verificador de Vulnerabilidade (Não Destrutivo)
Antes de executar o exploit completo, um verificador seguro confirma que o sistema está vulnerável.
O verificador reporta "potencialmente vulnerável", abrindo caminho para a exploração.
5. Criar Usuário Sem Privilégios
Uma conta testuser sem privilégios é criada para simular um atacante sem direitos especiais.
id mostra UID 1001, confirmando acesso não-root.
6. Clonar e Executar o Exploit
O PoC oficial da Theori é clonado e executado a partir da conta sem privilégios.
Repositório do exploit clonado com sucesso.
Execução do Exploit
O exploit em Python sobrescreve o page cache e detona o binário corrompido /usr/bin/su.
As saídas de whoami e id comprovam o escalonamento completo para root.
7. Verificar a Natureza Fileless (Sem Modificação em Disco)
O exploit corrompe apenas o page cache em memória. O /usr/bin/su em disco mantém seu checksum original.
Correspondência SHA256
O sha256sum corresponde ao hash do pacote original mesmo após a exploração, confirmando que não houve modificação em disco.
Engenharia de Detecção
Copy Fail não pode ser detectado pelo monitoramento de integridade de arquivos. Em vez disso, focamos nas primitivas em nível de chamadas de sistema que ele utiliza.
Regras do auditd
Implantamos regras personalizadas do auditd que disparam em:
- Criação de socket
AF_ALG(família 38) - Uso da chamada de sistema
splice() - Acesso de leitura a binários setuid por processos sem privilégios
Todas as regras personalizadas estão ativas, verificadas com auditctl -l.
Após executar o exploit uma segunda vez, vemos alertas para exatamente as chamadas de sistema utilizadas:
ausearch mostra um evento de criação de socket AF_ALG a partir do processo testuser.
ausearch mostra um evento splice() do mesmo PID, uma forte correlação.
Regra Sigma
Uma regra Sigma traduz os achados do auditd para um formato de SIEM neutro em relação ao fornecedor.
Regra YAML Sigma que detecta criação de socket AF_ALG e chamadas splice().
Regra YARA
Uma regra YARA ajuda a identificar código do exploit Copy Fail em disco.
Regra YARA que corresponde à string authencesn, constantes de socket e referências a splice() encontradas nos PoCs.
Resumo da Cobertura de Detecção
| Camada | O que Ela Vê | Status |
|---|---|---|
| auditd | Socket AF_ALG + chamadas de sistema splice | ✅ Implantado |
| Sigma | Padrões de chamadas de sistema via SIEM | ✅ Regra pronta |
| YARA | Código PoC em disco | ✅ Regra pronta |
| FIM (AIDE/Tripwire) | Alterações de arquivos | ❌ Cego – nenhuma escrita em disco ocorre |
Playbook de Resposta a Incidentes
Um relatório completo de resposta a incidentes está disponível em reports/incident-copy-fail.md. Ele inclui:
- Resumo executivo
- Indicadores de comprometimento (IoCs)
- Mapeamento MITRE ATT&CK (T1068, T1611)
- Etapas de contenção e erradicação
- Lições aprendidas sobre ataques fileless
Mitigação
Mitigação imediata (sem necessidade de reinicialização):
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf
sudo rmmod algif_aead