
Exploit em Python para CVE-2026-31431, uma escalada local de privilégios no kernel Linux via AF_ALG e splice() para gravar no cache de páginas, obtendo root em arm64 e x86.
| Item | Conteúdo |
|---|---|
| ID CVE | CVE-2026-31431 |
| Nome da Vulnerabilidade | Copy Fail |
| Tipo de Vulnerabilidade | Escalação Local de Privilégios (LPE) no Linux Kernel |
| Pontuação CVSS 3.1 | 7.8 (ALTA) |
| CWE | CWE-669: Transferência Incorreta de Recursos Entre Esferas |
| Escopo de Impacto | Todos os kernels Linux compilados entre 2017 e abril de 2026 |
| CISA KEV | Listado, prazo de correção 2026-05-15 |
| Data de Divulgação | 2026-04-29 |
Em 2017, o kernel introduziu uma otimização de criptografia in-place (in-place optimization) no módulo de criptografia algif_aead. Essa otimização fez com que páginas do page-cache fossem incorretamente colocadas em um scatterlist de destino gravável. Um atacante, combinando sockets AF_ALG com a chamada de sistema splice(), pode gravar dados no page cache de arquivos arbitrários (incluindo arquivos somente leitura de propriedade do root).
Cadeia de ataque: AF_ALG socket → splice() → primitiva de escrita no page-cache → adulteração do page cache de binários setuid → execução do arquivo para obter privilégios de root
Características do ataque:
| Distribuição | Versão do Kernel Afetada |
|---|---|
| Ubuntu 24.04 LTS | 6.17.0-1007-aws |
| Amazon Linux 2023 | 6.18.8-9.213.amzn2023 |
| RHEL 10.1 | 6.12.0-124.45.1.el10_1 |
| SUSE 16 | 6.12.0-160000.9-default |
Distribuições como Debian, Arch, Fedora, Rocky, Alma, Oracle, entre outras, também são afetadas na mesma faixa de versões de kernel.
Todas as versões de kernel inferiores às versões corrigidas abaixo estão afetadas:
uname -r
Compare a saída com as versões corrigidas na tabela acima; se for inferior à versão corrigida, o sistema está afetado.
# Verificar se há conexões AF_ALG ativas
lsof | grep AF_ALG
# Verificar o status dos sockets AF_ALG
ss -xa | grep alg
lsmod | grep algif_aead
Se houver saída, o módulo está carregado e existe risco de exploração.
# Clonar o repositório do PoC
git clone https://github.com/cx330zer0/CVE-2026-31431-Copy-Fail-add-arm64.git
cd CVE-2026-31431-Copy-Fail-add-arm64
# Executar o PoC (requer usuário sem privilégios)
python3 copy-fail-dual-arch.py
Se o PoC obtiver um shell de root com sucesso, o sistema está vulnerável a essa falha.
| Ramo Estável | Versão Mínima Corrigida |
|---|
| 5.10.x | ≥ 5.10.254 |
| 5.15.x | ≥ 5.15.204 |
| 6.1.x | ≥ 6.1.170 |
| 6.6.x | ≥ 6.6.137 |
| 6.12.x | ≥ 6.12.85 |
| 6.18.x | ≥ 6.18.22 |
| 6.19.x | ≥ 6.19.12 |
| 7.0.x | ≥ 7.0-rc7 |