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-live-code-corruption — CVE-2026-31431 (Copy Fail) exploit inovador: corrupção de código em tempo real via cache de páginas. Sobrescreve o código de exit() da libc através do compartilhamento de páginas MAP_PRIVATE — afeta TODOS os processos em execução. | Kitploit
Ferramentas/GitHubGitHub/ikow/cve-2026-31431-live-code-corruption
Escalada de PrivilégiosFrameworks de ExploraçãoAnálise de VulnerabilidadesExploraçãoExploração de Binários
GitHubikow/cve-2026-31431-live-code-corruption

CVE-2026-31431-live-code-corruption

CVE-2026-31431 (Copy Fail) exploit inovador: corrupção de código em tempo real via cache de páginas. Sobrescreve o código de exit() da libc através do compartilhamento de páginas MAP_PRIVATE — afeta TODOS os processos em execução.

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
Ver Repositório
1há 3 mesesAinda não revisado

CVE-2026-31431 — Corrupção de Código em Tempo Real via Page Cache

Uma técnica de exploração inédita para a CVE-2026-31431 ("Copy Fail") que corrompe o código executável de processos em execução através do page cache do kernel Linux, alcançando escalonamento de privilégios para root.

O Que Há de Diferente

Todos os exploits publicados para esta CVE corrompem arquivos de dados — modificando /etc/passwd para alterar o UID do root, ou corrigindo binários setuid no disco. Este exploit faz algo fundamentalmente diferente: corrompe o código executável em tempo real na memória através do mecanismo de page cache do kernel.

Exploits publicadosEste exploit
AlvoArquivos de dados (/etc/passwd, /usr/bin/su)Código executável (seção .text da libc)
MecanismoConteúdo de arquivo interpretado por programasPáginas de código executadas diretamente pela CPU
EscopoArquivo únicoTODOS os processos que mapeiam a libc
Alteração no discoSim (conteúdo do arquivo modificado)Não (apenas page cache na memória)
DetecçãoMonitoramento de integridade de arquivosInvisível para verificações do sistema de arquivos

Como Funciona

A Percepção do Page Cache

Quando o Linux mapeia uma biblioteca compartilhada com MAP_PRIVATE, ele não copia imediatamente as páginas do arquivo. Em vez disso, as entradas da tabela de páginas do processo apontam diretamente para as páginas físicas do page cache. A cópia só ocorre na escrita (copy-on-write). Para páginas de código (.text), os processos nunca escrevem nelas — então elas permanecem compartilhadas com o page cache para sempre.

root@kitploit:~
Processo A (bash)     Processo B (su)      Page Cache (libc)
  ┌──────┐            ┌──────┐            ┌──────────┐
  │ PTE  │───────────>│      │            │ exit():  │
  │      │            │ PTE  │───────────>│ endbr64  │
  └──────┘            └──────┘            │ push rax │
    MAP_PRIVATE         MAP_PRIVATE       │ ...      │
    (página limpa)      (página limpa)    └──────────┘
                                               ↑
                                    Copy Fail escreve aqui!

A CVE-2026-31431 nos dá uma escrita controlada de 4 bytes no page cache de qualquer arquivo legível. Ao corromper as páginas de código da libc, modificamos as instruções que todo processo executa.

O Exploit

  1. Escrever shellcode (39 bytes) na localização da função on_exit() no page cache da libc — 10 escritas de 4 bytes cada
  2. Corrigir exit() para saltar para o nosso shellcode — 1 escrita de 4 bytes
  3. Gatilho: qualquer programa que chame exit() (praticamente todo programa) executa nosso shellcode

O shellcode executa setuid(0) → setgid(0) → execve("/bin/sh"), fornecendo um shell root.

Visão Geral da CVE-2026-31431

  • Bug: Erro de lógica em crypto/algif_aead.c — a otimização in-place de 2017 (72548b093ee3) permite que splice() alimente páginas do page cache no decrypt AEAD. O rearranjo ESN do algoritmo authencesn escreve 4 bytes de rascunho de volta ao scatterlist de origem, corrompendo o page cache do arquivo com splice.
  • Primitiva: Escrita determinística de 4 bytes no page cache de qualquer arquivo legível
  • Requisitos: Nenhum — sockets AF_ALG disponíveis para usuários sem privilégios
  • Correção: Copiar para buffer fora do local antes da operação criptográfica (kernel 6.12.85+, 6.15+)

Uso

root@kitploit:~
# Compilar
gcc -o exploit exploit.c

# Executar como usuário sem privilégios
./exploit /lib/x86_64-linux-gnu/libc-2.31.so

# Gatilho — execute qualquer programa (ele chama exit())
su -c id
# uid=0(root) gid=0(root) groups=0(root)

Testado Em

  • Kernel: 6.12.79 (Ubuntu/Debian, antes da correção em 6.12.85)
  • glibc: 2.31-0ubuntu9.7
  • Resultado: Shell root completo, verificado pelo log do kernel: process 'id' launched '/bin/sh'

Arquivos

  • exploit.c — Exploit completo com injeção de shellcode
  • copyfail_test.c — Verificação da primitiva (testa escrita de 4 bytes)

Linha do Tempo

  • 2017: Otimização in-place introduzida (72548b093ee3)
  • 2026-04-29: CVE-2026-31431 divulgada
  • 2026-04-30: Correção lançada no kernel 6.12.85
  • 2026-05-06: Este exploit desenvolvido (técnica inédita de corrupção de código em tempo real)

Referências

  • NVD — CVE-2026-31431
  • Commit da correção
  • Análise do Copy Fail (Xint)

Aviso Legal

Esta ferramenta é fornecida apenas para pesquisa de segurança autorizada e fins educacionais. Não use contra sistemas que você não possui ou para os quais não tem permissão explícita de teste.

Relacionado: Dirty Frag (7 de maio de 2026)

Dirty Frag divulgou mais duas variantes de escrita no page cache na mesma classe de bug:

  • Caminho ESP (esp4/esp6): Mesmo sink authencesn do Copy Fail, alcançado via IPsec ESP-in-UDP. Requer namespaces de usuário. Escrita de 4 bytes.
  • Caminho RxRPC (rxrpc/rxkad): Decrypt in-place pcbc(fcrypt) em página fixada por splice. Nenhum namespace necessário. Escrita de 8 bytes.

A técnica de corrupção de código em tempo real neste repositório funciona com qualquer uma dessas primitivas de escrita no page cache — basta substituir a função write4() pelo gatilho ESP ou RxRPC. A técnica é agnóstica à primitiva.

Baixar ferramenta