
Documentação e análise de uma vulnerabilidade de escalonamento de privilégios local no template authencesn do kernel Linux via AF_ALG e splice(), incluindo versões afetadas, detecção e mitigação.
Escalação de Privilégios Local no template criptográfico
authencesndo kernel Linux viaAF_ALG+splice().
Divulgado em 29 de abril de 2026 pela Theori (Xint Code).
| Campo | Detalhe |
|---|---|
| CVE | CVE-2026-31431 |
| Apelido | Copy Fail |
| CVSS | 7.8 ALTO |
| Tipo | Escalação de Privilégios Local (LPE) |
| Introduzido | Kernel Linux 4.14 (2017, commit 72548b093ee3) |
| Corrigido | Commit mainline a664bf3d603d |
| Requer | Acesso local a shell sem privilégios |
| Vetor remoto | Nenhum — apenas local |
Uma falha lógica no wrapper AEAD authencesn do kernel permite que um usuário local sem privilégios realize uma gravação determinística e controlada de 4 bytes no cache de páginas de qualquer arquivo legível do sistema — incluindo binários setuid como /usr/bin/su.
A causa raiz é uma otimização de processamento in-place de 2017 que colocava páginas do cache de páginas em um scatterlist gravável. O algoritmo authencesn grava 4 bytes de dados temporários fora da sua região de saída pretendida durante o rearranjo do Extended Sequence Number. Devido à estrutura do scatterlist introduzida pela otimização, esses 4 bytes caem no cache de páginas de um arquivo alimentado via splice() — contornando completamente as permissões de arquivo.
Sem condição de corrida. Sem tentativas. Sem risco de travamento. Determinístico em todas as distribuições testadas.
Vulneráveis: Kernel Linux 4.14 até 6.18.21 e 6.19.x antes de 6.19.12.
Todas as principais distribuições que fornecem kernels nesse intervalo são afetadas, incluindo:
| Distribuição | Versão Testada |
|---|---|
| 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 |
Não afetadas: Ubuntu 26.04 (Resolute) e posteriores.
Atualize para um kernel contendo o commit mainline a664bf3d603d, que reverte a otimização in-place de 2017.
# Ubuntu / Debian
sudo apt update && sudo apt upgrade -y && sudo reboot
# RHEL / AlmaLinux / Amazon Linux
sudo dnf clean metadata && sudo dnf upgrade && sudo reboot
# SUSE
sudo zypper refresh && sudo zypper update kernel-default && sudo reboot
algif_aead (Temporário)Se não for possível aplicar o patch imediatamente, desabilite o módulo vulnerável para fechar a superfície de ataque.
Nota para sistemas da família RHEL:
algif_aeadé compilado diretamente no kernel em RHEL/AlmaLinux/CentOS (CONFIG_CRYPTO_USER_API_AEAD=y). O workaround viamodprobe.dnão funciona nesses sistemas. Use o métodoinitcall_blacklistem vez disso.
Debian/Ubuntu (módulo carregável):
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf
sudo rmmod algif_aead 2>/dev/null || true
Família RHEL (compilado no kernel — requer reinicialização):
sudo grubby --update-kernel=ALL --args="initcall_blacklist=algif_aead_init"
sudo reboot
Confirme após a reinicialização:
grep initcall_blacklist /proc/cmdline
Para workloads não confiáveis — contêineres, runners de CI, ambientes sandbox — bloqueie a criação de sockets AF_ALG via política seccomp independentemente do estado do patch. Isso limita a superfície de ataque mesmo em kernels vulneráveis.
Verifique se algif_aead está atualmente carregado ou em uso:
# Verifique se o módulo está carregado
lsmod | grep algif_aead
# Verifique se algum processo tem um socket AF_ALG aberto
lsof | grep AF_ALG
ss -xa | grep alg
Assinaturas de detecção em tempo de execução estão disponíveis no Sysdig Secure (regra: AF_ALG Page Cache Poisoning Leading to Privilege Escalation).
xD The Watcher — Red Teamer, Ethical Hacker & Pesquisador de Segurança em IA
GitHub: @xd20111
Blog: yourhacker
Este repositório documenta a vulnerabilidade para fins de pesquisa e defesa. Para o writeup técnico autoritativo e o PoC oficial, consulte a divulgação da Theori linkada acima.
Se o seu modelo de ameaça inclui multi-tenancy com kernel compartilhado — contêineres em um host compartilhado, runners de CI, fazendas de build — a fronteira de isolamento agora está significativamente mais fraca até que o patch seja aplicado. Isolamento em nível de hardware ou VM é a resposta correta, não fronteiras de namespace.
| Dirty Cow (2016) | Dirty Pipe (2022) | Copy Fail (2026) |
|---|
| Condição de corrida necessária | Sim | Parcial | Não |
| Específico de versão | Sim | Sim | Não |
| Confiabilidade | Instável | Moderada | Determinística |
| Cobertura de distribuições | Limitada | Limitada | Todas desde 2017 |
| Componente | Impacto |
|---|
| dm-crypt / LUKS | ✅ Não afetado |
| SSH | ✅ Não afetado |
| IPsec / XFRM | ✅ Não afetado |
| kTLS / TLS no kernel | ✅ Não afetado |
| OpenSSL / GnuTLS / NSS (builds padrão) | ✅ Não afetado |
OpenSSL com engine afalg explicitamente habilitada | ⚠️ Retorna para criptografia em userspace |
Aplicações que usam sockets AF_ALG aead/skcipher/hash diretamente | ⚠️ Irão quebrar — verifique com lsof | grep AF_ALG |
| Recurso | Link |
|---|
| Entrada NVD | https://nvd.nist.gov/vuln/detail/CVE-2026-31431 |
| Writeup Completo da Theori | https://xint.io/blog/copy-fail-linux-distributions |
| Site Copy Fail | https://copy.fail |
| Aviso CERT-EU | https://cert.europa.eu/publications/security-advisories/2026-005/ |
| Análise Sysdig | https://sysdig.com/blog/cve-2026-31431-copy-fail-linux-kernel-flaw-lets-local-users-gain-root-in-seconds |
| Cobertura The Register | https://theregister.com/2026/04/30/linux_cryptographic_code_flaw/ |
| Notas de Patch AlmaLinux | https://almalinux.org/blog/2026-05-01-cve-2026-31431-copy-fail/ |
| CloudLinux KernelCare | https://blog.cloudlinux.com/cve-2026-31431-copy-fail-kernel-update |
| Data | Evento |
|---|
| 2017 | Regressão introduzida via commit 72548b093ee3 |
| Início de abril de 2026 | Correção upstream mesclada (commit a664bf3d603d) |
| 29 de abril de 2026 | Divulgação pública pela Theori / Xint Code |
| 30 de abril de 2026 | Patches das distribuições começam a ser distribuídos |
| 1º de maio de 2026 | Kernels corrigidos do AlmaLinux nos repositórios de produção |