
Prova de conceito de exploit para CVE-2026-31431, uma vulnerabilidade de escalonamento local de privilégios no kernel Linux no módulo algif_aead, que permite que usuários sem privilégios obtenham acesso root por meio de uma escrita de 4 bytes no cache de páginas.
Este repositório contém uma prova de conceito de exploit para CVE-2026-31431, uma vulnerabilidade de escalonamento de privilégios local de alta gravidade no kernel Linux que permite que qualquer usuário local sem privilégios obtenha acesso root. A falha, apelidada de "Copy Fail", reside no módulo algif_aead e pode ser encadeada com a interface de socket AF_ALG e a chamada de sistema splice() para realizar uma gravação controlada de 4 bytes no cache de páginas de qualquer arquivo legível, como o binário setuid /usr/bin/su.
A vulnerabilidade afeta quase todos os kernels Linux lançados desde 2017, incluindo todas as principais distribuições (Ubuntu, Debian, RHEL, SUSE, Amazon Linux e muitas outras). Foi divulgada publicamente em 29 de abril de 2026. Uma correção foi enviada ao upstream (commit a664bf3d603d), mas muitos fornecedores ainda estão no processo de lançar kernels corrigidos. Até que um kernel corrigido esteja disponível, é fortemente recomendado desabilitar o módulo do kernel algif_aead como mitigação temporária.
⚠ Importante: Este material é fornecido estritamente para fins educacionais e de pesquisa de segurança autorizada. Não o utilize contra sistemas que você não possui ou sem permissão explícita.
O repositório contém duas implementações de PoC que demonstram a exploração sob diferentes ângulos.
copy-fail-poc-short.py — mínimo, próximo ao originalUma versão condensada que permanece muito próxima ao exploit Python originalmente publicado. Utiliza nomes de variáveis de uma única letra e omite comentários ou constantes, tornando-a extremamente compacta (732 bytes). Esta variante:
/usr/bin/su e um socket AEAD AF_ALG bruto.os.splice para copiar com zero-copy o bloco correspondente de 4 bytes do arquivo alvo./usr/bin/su para entrar em um shell root.copy-fail-poc.py — totalmente refatorado, abrangenteUma versão completamente reescrita e bem documentada que segue as melhores práticas de Python. Esta variante:
send_data_over_crypto_socket()) para isolar a lógica central.Esta versão é ideal para aqueles que desejam entender a vulnerabilidade em profundidade ou adaptar o código para pesquisas adicionais.
Em um nível alto, o exploit:
setuid alvo (/usr/bin/su).AF_ALG e o configura com os parâmetros necessários para acionar a falha lógica.splice() com zero-copy.algif_aead, o kernel erroneamente grava 4 bytes de dados controlados pelo atacante no cache de páginas do binário alvo./usr/bin/su efetivamente aplica um patch no binário em tempo de execução, permitindo que um usuário sem privilégios execute uma versão corrigida que retorna um shell root.O exploit é extremamente confiável (taxa de sucesso de 100%) e não requer janelas de corrida ou offsets específicos por kernel.
a664bf3d603d (git.kernel.org)