
Prova de conceito de exploit para CVE-2026-31431, uma vulnerabilidade de corrupção de memória AF_ALG no kernel Linux. Usa splice para corrigir /usr/bin/su no cache de páginas, permitindo escalonamento de privilégios para root sem senha.
CopyFail é uma prova de conceito de exploit para a CVE-2026-31431, que visa uma vulnerabilidade de corrupção de memória na API de Criptografia do Kernel Linux (AF_ALG). O exploit utiliza a chamada de sistema splice para realizar a modificação não autorizada do page-cache do binário /usr/bin/su, permitindo uma escalada para root sem senha.
A vulnerabilidade reside no tratamento, pelo kernel Linux, de transferências de dados zero-copy entre sockets AF_ALG e outros descritores de arquivo via splice. Devido à sincronização ou verificação de limites inadequada na implementação do aead, os dados processados pelo mecanismo de criptografia podem ser gravados de volta no page-cache do arquivo de origem.
AF_ALG e usa sendmsg para enfileirar um payload malicioso nos buffers internos do socket.splice para transferir dados do binário /usr/bin/su para o socket AF_ALG, a vulnerabilidade faz com que o conteúdo do buffer do socket sobrescreva o page-cache do binário na memória.su por um payload ELF mínimo que gera um shell root. Como o page-cache é modificado, execuções subsequentes do su executam o código do atacante em vez do binário original.RawSyscall para todas as interações com o kernel.AF_ALG/splice.fmt ou os).Compile o exploit para a arquitetura atual:
go build -ldflags="-s -w" -o CopyFail CVE-2026-31431.go
Execute o binário compilado:
./CopyFail
Após a execução bem-sucedida, o binário su será modificado na memória e executado, concedendo um shell root.
A demonstração a seguir mostra o exploit sendo compilado e executado em uma instalação padrão do Kali Linux.
# 1. Verifique o usuário não privilegiado atual
kali@kali:~$ whoami
kali
# 2. Compile o exploit
kali@kali:~$ go build -ldflags="-s -w" -o CopyFail CVE-2026-31431.go
# 3. Execute o exploit CopyFail
kali@kali:~$ ./CopyFail
[+] Acionando corrupção de memória AF_ALG...
[+] Modificando /usr/bin/su no page-cache...
[+] Executando binário modificado...
# 4. Sucesso: Elevado para shell root
root@kali:/home/kali# id
uid=0(root) gid=0(root) groups=0(root)
root@kali:/home/kali# whoami
root
Para mitigar esta vulnerabilidade, as seguintes etapas são recomendadas:
af_alg e os módulos relacionados:
modprobe -r af_alg
auditd) para monitorar chamadas splice suspeitas direcionadas a binários sensíveis do sistema.⚠️ Aviso: Esta ferramenta é apenas para pesquisa de segurança autorizada e fins educacionais. A modificação do page-cache é uma operação volátil e pode causar instabilidade no sistema. O autor não assume responsabilidade por uso indevido.
A CVE-2026-31431 ("Copy Fail") foi descoberta e divulgada pela equipe de pesquisa da Theori.
Este projeto é licenciado sob a MIT LICENSE.