Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-31431 — Exploit e detector para uma escalada local de privilégios no kernel Linux (CVE-2026-31431) que corrompe o cache de páginas para obter acesso root, com orientações de mitigação. | Kitploit
Ferramentas/GitHubGitHub/kaleth4/cve-2026-31431
Escalada de PrivilégiosFrameworks de ExploraçãoAnálise de VulnerabilidadesExploraçãoTestes de Penetração
GitHubkaleth4/cve-2026-31431

CVE-2026-31431

Exploit e detector para uma escalada local de privilégios no kernel Linux (CVE-2026-31431) que corrompe o cache de páginas para obter acesso root, com orientações de mitigação.

Ver Repositório
há 3 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

🚨 CVE-2026-31431: Copy Fail

Uma falha crítica de 9 anos no kernel Linux que permite obter acesso root em segundos


📋 Resumo Executivo

AtributoDetalhes
CVECVE-2026-31431
ApelidoCopy Fail
TipoEscalonamento de Privilégios Local (LPE)
CVSS7.8 (High)
Descoberto porTheori (Xint Code)
Divulgação29 de abril de 2026
ComponenteSubsistema algif_aead do kernel Linux

⚡ Por que é tão perigoso?

🎯 Velocidade

  • Exploit instantâneo: < 1 segundo para obter root
  • Script Python de apenas 732 bytes

👻 Sigilo Absoluto

  • Modifica apenas a memória RAM (page cache), não o disco
  • Ferramentas de integridade de arquivos não o detectam
  • Ao reiniciar, o rastro desaparece (análise forense comprometida)

🌍 Alcance Massivo

  • Afeta praticamente todas as distribuições modernas
  • Kernels desde v4.14 (2017) até v7.0-rc
  • Vulnerável durante 9 anos sem ser detectado

☁️ Risco em Cloud/Kubernetes

  • Permite escape de contêineres para o nó principal
  • O cache de páginas é compartilhado entre host e contêineres
  • Impacto crítico em ambientes multi-tenant

🔍 Detalhes Técnicos

Causa Raiz

Falha na otimização de "operação no local" (in-place) introduzida em 2017 (commit 72548b093ee3). Permite que um usuário local realize uma escrita controlada de 4 bytes diretamente no cache de páginas do kernel.

Mecanismo de Exploração

  1. O atacante utiliza a interface AF_ALG para acessar algoritmos criptográficos do kernel
  2. Corrompe a versão em memória de binários setuid (/usr/bin/su) ou arquivos sensíveis (/etc/passwd)
  3. Ao executar o binário corrompido, obtém uma shell de root

Por que passou despercebido

É um bug lógico de design, não um estouro de memória. Exigia análise profunda do subsistema criptográfico para ser detectado.


📊 Sistemas Afetados

✅ Confirmados

  • Ubuntu: 20.04, 22.04, 24.04 LTS
  • RHEL/AlmaLinux/Rocky Linux: Todas as versões modernas
  • Debian: Todas as versões com kernel v4.14+
  • Amazon Linux 2023
  • SUSE: Versões recentes

🛡️ Plano de Remediação

1️⃣ Solução Definitiva: Atualizar o Kernel

root@kitploit:~
# Ubuntu/Debian
sudo apt update
sudo apt upgrade
sudo reboot

# RHEL/AlmaLinux/Rocky
sudo dnf update kernel
sudo reboot

# Verificar versão do kernel
uname -r

⚠️ A reinicialização é obrigatória para ativar o novo kernel.


2️⃣ Mitigação de Emergência (sem reinicialização imediata)

Para Ubuntu/Debian:

root@kitploit:~
# Desabilitar o carregamento do módulo vulnerável
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/copyfail_mitigation.conf

# Descarregar o módulo se já estiver em uso
sudo rmmod algif_aead

Para RHEL/AlmaLinux:

root@kitploit:~
# O módulo geralmente está integrado ao kernel
# Adicionar parâmetro de boot para desabilitá-lo
sudo grubby --update-kernel=ALL --args="initcall_blacklist=algif_aead_init"

# Reiniciar para aplicar as alterações
sudo reboot

3️⃣ Limpar Caches (se suspeitar de exploração anterior)

root@kitploit:~
# Purgar o cache de páginas a quente
sudo sysctl -w vm.drop_caches=3

⚠️ Nota: Isso não substitui o patch. É apenas uma medida complementar.


📅 Cronologia de Eventos

DataEvento
29 de abrilDivulgação pública pela Theori
1 de maio

📦 Status dos Patches


🔐 Verificar seu Sistema

Seu kernel é vulnerável?

root@kitploit:~
# Obter versão do kernel
uname -r

# Vulnerável se:
# - v4.14 a v7.0-rc (lançado entre 2017 e abril 2026)
# - Contém o commit 72548b093ee3

# Verificar se o módulo algif_aead está carregado
lsmod | grep algif_aead

# Se aparecer na lista, seu sistema é vulnerável

🧬 Análise de Segurança: O Fator IA

O mais disruptivo: Descoberto por IA em 1 hora

Uma IA identificou esta falha que passou despercebida para os desenvolvedores durante 9 anos. Isso marca um antes e um depois:

  • 🤖 As máquinas podem auditar o código do kernel mais rápido que os humanos
  • 🔍 Encontrando falhas lógicas complexas automaticamente
  • ⚠️ Implicações para o futuro da pesquisa de 0-days

Quick start

root@kitploit:~
# 1. Detect
python3 prueba.py
#   exit 0 = not vulnerable, 2 = vulnerable, 1 = test error

# 2. Exploit (interactive — su will prompt for your own password)
python3 exploit.py --shell

Detector usage

root@kitploit:~
python3 prueba.py

O que faz:

  1. Confirma que AF_ALG e o algoritmo authencesn(hmac(sha256),cbc(aes)) são acessíveis a partir de um processo sem privilégios.

  2. Cria um arquivo sentinela de 4 KiB em um diretório temporário e preenche o cache de páginas.

  3. Envia 8 bytes de AAD inline via sendmsg+cmsg com seqno_lo definido para o marcador PWND, e então copia 32 bytes da página do cache de páginas da sentinela para o socket de operação AF_ALG via os.splice().

  4. Chama recv() para iniciar a descriptografia. A verificação de autenticação falha com EBADMSG; a escrita temporária é executada mesmo assim.

  5. Relê o arquivo (cache de páginas, não o disco) e procura pelo marcador.

Classes de saída:

  • Condição prévia não atendida: AF_ALG ou authencesn não disponíveis. Saída 0.
  • VULNERÁVEL a CVE-2026-31431: o marcador PWND foi inserido na página modificada.

Saída 2.

  • Cache de página MODIFICADA via caminho de inserção AEAD in-place: foi feita escrita na página, mas o marcador não foi inserido na posição esperada. Tratar como vulnerável. Saída 2.
  • Cache de página intacta: corrigido. Saída 0.

O detector nunca modifica /usr/bin/su, /etc/passwd nem qualquer outro arquivo fora do diretório temporário que cria, e tal arquivo é removido ao finalizar.

Saída. ## Uso do LPE

root@kitploit:~
python3 exploit_cve_2026_31431.py # Apenas aplica o patch, imprime os próximos passos
python3 exploit_cve_2026_31431.py --shell # Aplica o patch e executa `su <usuário>`

Função:

  1. Procura a linha UID do usuário em execução em /etc/passwd e encontra o

deslocamento de bytes do campo UID de 4 caracteres.

  1. Executa um write4 nesse deslocamento, substituindo o UID por

0000.

  1. Chama pwd.getpwnam(usuário) para confirmar que a libc agora informa UID 0.
  2. Com --shell, executa execvp("su", ["su", usuário]). Digite sua própria senha. O PAM valida contra /etc/shadow (sem modificação), então

setuid(getpwnam(user).pw_uid) é definido para 0.

Requisitos

  • O usuário em execução tem um UID de 4 dígitos (1000–9999). UIDs de 1 a 3 dígitos

exigem escritas de múltiplos disparos; estenda write4 conforme necessário.

  • Nenhum daemon de cache NSS (nscd, sssd, systemd-userdbd) está mascarando as leituras de /etc/passwd. Se getpwnam ainda retornar o UID real após a aplicação do patch, reinicie ou ignore o cache, ou selecione um usuário diferente.

  • A página /etc/passwd deve permanecer no cache entre a aplicação do patch e a execução de su. Na prática, isso é confiável em qualquer sistema com pressão de memória normal.

Reversão

O arquivo /etc/passwd no disco permanece inalterado.

A execução de teste (exploit_cve_2026_31431.py sem --shell) remove automaticamente a página corrompida ao sair via POSIX_FADV_DONTNEED, portanto as buscas de UID → nome voltam ao normal imediatamente.

Após usar --shell**, a página permanece corrompida até ser limpa. Enquanto estiver corrompida, qualquer operação que resolva UID 1000 → nome (por exemplo, ls, gerenciadores de arquivos, verificações de propriedade de scp/sftp) falhará ou exibirá identificadores numéricos. Para limpá-la:

root@kitploit:~
# Sem privilégios: solicita a remoção do cache de páginas de /etc/passwd:
python3 -c "import os; fd=os.open('/etc/passwd', os.O_RDONLY); \
os.posix_fadvise(fd, 0, 0, os.POSIX_FADV_DONTNEED); os.close(fd)"

# Do console de root:
echo 3 > /proc/sys/vm/drop_caches

Uma reinicialização também a limpa.

Como funciona o write4

root@kitploit:~
sendmsg([AAD de 8 bytes], cmsg=[ALG_SET_OP=DECRYPT, ALG_SET_IV, ALG_SET_AEAD_ASSOCLEN=8],
flags=MSG_MORE)
splice(target_fd, pipe_w, 32, offset_src=file_offset)
splice(pipe_r, op_fd, 32)
recv(op_fd) # EBADMSG; a escrita temporária já foi realizada

Os 4 bytes das posições 4 a 7 do AAD (seqno_lo) são escritos por authencesn na lista de dispersão de destino, que neste caminho de código é a página do cache de páginas que extraímos de target_fd. O deslocamento de aterrissagem dentro da página corresponde ao offset_src que passamos para splice().

Mitigação

Até que o kernel corrigido chegue à sua distribuição:

root@kitploit:~
sudo tee /etc/modprobe.d/disable-algif-aead.conf <<<'install algif_aead /bin/false'
sudo rmmod algif_aead 2>/dev/null

Após aplicar o patch, test_cve_2026_31431.py deve exibir a mensagem «Condição prévia não atendida» e sair com código 0.

A correção original reverte as operações AEAD in-place para operações fora do local, mantendo as páginas do cache de páginas fora das listas de dispersão modificáveis.

📚 Referências Oficiais

  • CVE-2026-31431 - NVD
  • Copy Fail Patches - AlmaLinux
  • Sysdig Security Research
  • CISA Alert

⚠️ Recomendações Finais

  1. Prioridade Crítica: Atualize seu kernel antes de 15 de maio de 2026 (mandato da CISA)
  2. Se não puder reiniciar: Aplique a mitigação temporária desabilitando algif_aead
  3. Em Cloud/Kubernetes: Verifique se seus nós estão corrigidos imediatamente
  4. Monitoramento: Procure tentativas de carregamento do módulo algif_aead em logs de auditoria

Última atualização: 3 de maio de 2026
Status: 🔴 CRÍTICO - Ação imediata necessária

Baixar ferramenta
Primeiras tentativas de exploração ativa detectadas
2 de maioCISA ordena que agências federais dos EUA apliquem patch antes de 15 de maio
3 de maioPatches disponíveis em Ubuntu, RHEL, AlmaLinux, Debian
DistribuiçãoStatusReferência
Ubuntu✅ CorrigidoUSN-8226-1 (20.04, 22.04, 24.04)
RHEL/AlmaLinux/Rocky✅ DisponívelDesde 1 de maio
Debian✅ Nos repositórios de segurançaAtualização disponível
Android⏳ Em breveBoletim de segurança de junho 2026