Skip to content
KitploitKITPLOIT
FerramentasBlog
Log in
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.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-31431 — Prova de conceito funcional de exploit para CVE-2026-31431, uma escalada local de privilégios no kernel Linux por meio de corrupção do cache de páginas do AEAD AF_ALG, concedendo shell de root. | Kitploit
Ferramentas/GitHubGitHub/wesmar/cve-2026-31431
Escalada de PrivilégiosFrameworks de ExploraçãoAnálise de VulnerabilidadesExploraçãoExploração de Binários
GitHubwesmar/cve-2026-31431

CVE-2026-31431

Prova de conceito funcional de exploit para CVE-2026-31431, uma escalada local de privilégios no kernel Linux por meio de corrupção do cache de páginas do AEAD AF_ALG, concedendo shell de root.

Ver Repositório
618há 5 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 — Escalação de Privilégios Local via AF_ALG

NVD / NIST PoC Download

2026-04-29 — Estou publicando este exploit um dia após compartilhá-lo no fórum MyDigitalLife. Ele não requer Python; foi escrito em C e compilado para o menor tamanho possível usando:

musl-gcc -static -Os -o exploit exploit.c -s

Ameaça crítica. O binário do exploit é compilado sem dependências e pode ser usado para testar vulnerabilidades em qualquer sistema Linux

CVE-2026-31431 é uma vulnerabilidade confirmada pela NIST no kernel Linux que permite que um usuário local sem privilégios obtenha um shell root em segundos. Diante do exploit de circulação pública para CVE-2026-31431, desenvolvi uma prova de conceito (PoC) binária para avaliar a exposição da nossa infraestrutura interna. Embora alguns ambientes restrinjam o uso de su, esta vulnerabilidade é particularmente crítica para servidores compartilhados porque ataca o gerenciamento de memória subjacente do kernel. Consequentemente, qualquer binário SETUID — incluindo sudo, passwd, mount ou newgrp — pode ser aproveitado para acionar o exploit e conceder um shell root. Ação administrativa para corrigir o kernel é necessária imediatamente, pois as restrições padrão de espaço do usuário são insuficientes para mitigar esta ameaça. Qualquer sistema Linux executando um kernel sem patch está em risco.

Meu Próprio Exploit Funcional · Kernel Linux · Interface criptográfica AF_ALG (AEAD)

Substitui /usr/bin/su no cache de páginas do kernel sem tocar no arquivo em disco

Acesso local ao shell é suficiente — nenhum privilégio adicional é necessário

Afeta distribuições Linux sem patch

CVE-2026-31431


📚 Índice

  • O que é esta vulnerabilidade
  • Quem é afetado
  • Como o exploit funciona — passo a passo
  • Fluxo do ataque
  • Análise do código do exploit
  • Payload ELF — detalhes técnicos
  • Como verificar se você está vulnerável
  • Mitigações
  • Notas do pesquisador
  • Aviso legal

O que é esta vulnerabilidade

CVE-2026-31431 é um bug no tratamento de operações de I/O scatter-gather e referências ao cache de páginas no subsistema criptográfico do kernel Linux — especificamente na implementação do socket AF_ALG para algoritmos AEAD (crypto/af_alg.c, crypto/aead.c).

PropriedadeValor
IdentificadorCVE-2026-31431
ReferênciaNIST NVD
TipoEscalação de Privilégios Local (LPE)
ComponenteKernel Linux — AF_ALG / AEAD (authencesn)
Acesso necessárioUsuário local sem privilégios
ImpactoShell root interativo
Status do exploitPoC funcional publicamente disponível no GitHub
PersistênciaNenhuma — a modificação existe apenas na RAM; reiniciar restaura o estado original

O que realmente acontece

O kernel Linux expõe uma interface criptográfica ao espaço do usuário através de sockets AF_ALG. A vulnerabilidade reside no fato de que, durante uma operação de descriptografia AEAD, o kernel mapeia incorretamente a saída da descriptografia diretamente nas páginas do cache de páginas do arquivo de origem — em vez de um buffer temporário. Um atacante pode, assim, sobrescrever o conteúdo em memória de qualquer arquivo sem modificá-lo em disco, sem privilégios root e sem deixar nenhum rastro visível no sistema de arquivos.


Quem é afetado

SistemaStatus
Ubuntu 24.04 (bare metal / VM)⚠️ Vulnerável em kernel sem patch
Debian, Fedora, Arch em kernel sem patch⚠️ Vulnerável
Distribuições com CONFIG_SECURITY_LOCKDOWN_LSM✅ Provavelmente protegido
Sistemas com nosuid ou ProtectSUID (systemd)✅ Protegido
Sistemas com AppArmor/SELinux bloqueando AF_ALG✅ Protegido
macOS, Windows (nativo)✅ Não afetado

Como o exploit funciona — passo a passo

O exploit consiste em dois componentes: um script auxiliar em /tmp/x e um loop de corrupção baseado em AF_ALG. A seguir, uma descrição exata baseada na análise do código-fonte:

1. Configuração do script auxiliar

O exploit cria /tmp/x com o seguinte conteúdo:

#!/bin/sh
export TERM=xterm-256color
exec /bin/sh

Ele define permissões para 0755. O motivo: /usr/bin/su remove variáveis de ambiente (incluindo TERM) ao ser iniciado. O script auxiliar as restaura antes de iniciar o shell real, garantindo um terminal funcional.

2. Construção do payload ELF

Um binário ELF x86_64 mínimo de 158 bytes contendo shellcode bruto é construído em memória. A string /bin/sh no offset 150 é então corrigida para /tmp/x\0 via memcmp/memcpy. Consulte Payload ELF para detalhes.

3. Abrindo /usr/bin/su somente leitura

int su_fd = open("/usr/bin/su", O_RDONLY);

O arquivo é aberto somente leitura — o exploit não requer nenhuma permissão de escrita.

4. Loop de corrupção — 39 iterações de 4 bytes cada

O payload (158 bytes) é processado em blocos de 4 bytes (39 blocos completos). Cada bloco é passado por corrupt_binary_chunk(), que executa:

  • Cria um socket AF_ALG (SOCK_SEQPACKET)
  • Faz bind em authencesn(hmac(sha256),cbc(aes)) — um algoritmo AEAD composto
  • Define uma chave de 72 bytes e um tamanho de tag de autenticação de 4 bytes
  • Aceita um socket de operação (op_sock)
  • Envia sendmsg com um buffer de 8 bytes (4× 'A' + 4 bytes do payload) e três CMSGs: ALG_OP_DECRYPT, IV (20 bytes), assoclen=8
  • Executa splice: su_fd → pipe → op_sock (zero-copy através do kernel)
  • Finaliza via recv() — é aqui que o kernel erroneamente sobrescreve o cache de páginas

5. Execução

execve("/usr/bin/su", args, NULL);

O kernel carrega /usr/bin/su através do cache de páginas — que agora está envenenado. O bit SUID (chmod u+s) está intacto, então o kernel executa o arquivo como root. O shellcode executa setuid(0) → execve("/tmp/x") → shell root interativo.


Fluxo do ataque

Baixar ferramenta