
Repositório de pesquisa defensiva para CVE-2026-31431, uma escalada de privilégio local no kernel do Linux através de corrupção do cache de página via AF_ALG, splice() e authencesn. Inclui análise técnica, estratégias de detecção e medidas de mitigação.
Copy Fail (CVE-2026-31431) é uma vulnerabilidade do tipo Local Privilege Escalation (LPE) que afeta o kernel Linux através de uma corrupção controlada do page cache pelos mecanismos AF_ALG, splice() e authencesn.
Este repositório tem como objetivo:
⚠️ Este projeto é estritamente educacional, defensivo e destinado à pesquisa em segurança.
Todas as demonstrações apresentadas neste repositório foram realizadas em ambientes de laboratório isolados e controlados.
Nenhum uso em sistemas de terceiros sem autorização explícita é permitido.
| Elemento | Valor |
|---|---|
| Tipo | Local Privilege Escalation |
| Impacto | Root local |
| Componente | Linux Kernel |
| Subsistema | AF_ALG / authencesn |
| Primitiva | Escrita controlada no page cache |
| Condição | Usuário não privilegiado |
| Furtividade | Arquivo de disco intacto |
| Gravidade | Crítica |
| Característica | Detalhe |
|---|---|
| Nenhuma condição de corrida | Exploração determinística |
| Sem modificação em disco | Detecção difícil |
| Exploit minimalista | Apenas Python padrão |
| Impacto em contêineres | Kubernetes / VPS / shared hosting |
| Grande janela | Kernels vulneráveis desde 2017 |
Comparável a:
User Space
↓
AF_ALG Socket
↓
splice()
↓
Page Cache Reference
↓
authencesn In-Place Write
↓
Controlled 4-Byte Overwrite
↓
execve()
↓
Privilege Escalation
2011 → authencesn ajouté au kernel
2015 → AF_ALG reçoit le support AEAD + splice()
2017 → Optimisation in-place dans algif_aead.c
2026 → Découverte et correctif officiel
AF_ALGInterface socket que expõe as primitivas criptográficas do kernel Linux ao espaço do usuário.
splice()Mecanismo que permite a transferência de páginas sem cópia entre descritores de arquivo.
authencesnTemplate AEAD IPsec ESN que utiliza o buffer de destino como espaço de trabalho temporário.
A otimização introduzida em algif_aead.c permitiu a ligação direta das páginas do page cache na scatterlist de destino através de sg_chain().
Input SGL: AAD || Ciphertext || Tag (page cache)
↑
Output SGL: AAD || Ciphertext ------+
authencesn escreve então diretamente nas páginas do page cache do arquivo de destino.
| Primitiva | Controle |
|---|---|
| Arquivo de destino | Qualquer arquivo legível |
| Offset | Controlado via splice |
| Valor escrito | Campo seqno_lo |
| Persistência | Apenas memória |
| Detecção em disco | Impossível |
| Distribuição | Kernel | Status |
|---|---|---|
| Ubuntu 24.04 LTS | 6.17.0-1007-aws | ✅ Vulnerável |
| Amazon Linux 2023 | 6.18.8-9.213 | ✅ Vulnerável |
| RHEL 10.1 | 6.12.0 | ✅ Vulnerável |
| SUSE 16 | 6.12.0 | ✅ Vulnerável |
⚠️ Reservado para ambientes de teste isolados.
uname -r
lsmod | grep algif_aead
python3 --version
git clone https://github.com/theori-io/copy-fail-CVE-2026-31431.git
cd copy-fail-CVE-2026-31431
python3 copy_fail_exp.py
auditctl -a always,exit -F arch=b64 -S socket -F a0=38 -k af_alg_socket
auditctl -a always,exit -F arch=b64 -S splice -k splice_monitor
ps aux | awk '$1 == "root"'
ss -tlnp
algif_aeadecho "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf
sudo rmmod algif_aead
{
"defaultAction": "SCMP_ACT_ALLOW",
"syscalls": [
{
"names": ["socket"],
"action": "SCMP_ACT_ERRNO",
"args": [
{ "index": 0, "value": 38, "op": "SCMP_CMP_EQ" }
]
}
]
}
A correção a664bf3d603d remove a operação in-place vulnerável em algif_aead.c.
sudo apt update && sudo apt upgrade
sudo reboot
| Data | Evento |
|---|---|
| 2017 | Introdução da vulnerabilidade |
| 2026-03-23 | Notificação à equipe de segurança do kernel |
| 2026-04-01 | Correção integrada |
| 2026-04-29 | Divulgação pública |
| Recurso | Descrição |
|---|---|
| Dirty Pipe | CVE-2022-0847 |
| Linux Kernel Docs | Documentação oficial |
| Openwall Security | Lista de discussão de segurança |
| LWN.net | Análise do kernel Linux |
| AF_ALG Documentation | Crypto API |
| XFRM / IPsec | Subsistema afetado |
linux kernel security, CVE-2026-31431, copy fail, page cache, AF_ALG, authencesn, linux LPE, kernel exploit, linux hardening, security research, dirty pipe, kernel mitigation
Este repositório é destinado exclusivamente:
Qualquer uso não autorizado é ilegal.
🛡️ Conscientização • Mitigação • Pesquisa Defensiva
🔁 Compartilhe o projeto com a comunidade de cibersegurança
⭐ Apoie a pesquisa em segurança Linux