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 — # Reescrita em Golang do exploit de escalonamento de privilégios locais Copy Fail (CVE-2026-31431), corrompendo o cache de páginas para obter root em sistemas Linux. | Kitploit
Ferramentas/GitHubGitHub/gr-1m/cve-2026-31431
Escalada de PrivilégiosFrameworks de ExploraçãoAnálise de VulnerabilidadesExploraçãoEscape de ContêinerExploração de Binários
GitHubgr-1m/cve-2026-31431

CVE-2026-31431

# Reescrita em Golang do exploit de escalonamento de privilégios locais Copy Fail (CVE-2026-31431), corrompendo o cache de páginas para obter root em sistemas Linux.

Ver Repositório
1há 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

中文版

732 Bytes até Root em Todas as Principais Distribuições Linux

CVE-2026-31431 (Copy Fail) é um bug lógico no template criptográfico authencesn do kernel Linux. Ele permite que um usuário local sem privilégios acione uma escrita determinística e controlada de 4 bytes no page cache de qualquer arquivo legível do sistema.

Visão Geral

  • ID CVE: CVE-2026-31431
  • Tipo: Escalação Local de Privilégios / Escape de Contêiner
  • Afetados: Kernels Linux com CONFIG_CRYPTO_AUTHENC (praticamente todas as principais distros desde 2017)
  • Descoberto por: Xint Code Research Team, com percepção inicial do pesquisador da Theori, Taeyang Lee

Como Funciona

O bug encadeia dois comportamentos:

  1. AF_ALG + splice: splice() transfere páginas do page cache por referência para o scatterlist de um socket AF_ALG. No modo in-place de descriptografia AEAD, as páginas de tag (do page cache do arquivo alvo) permanecem encadeadas ao scatterlist de saída via sg_chain().

  2. Escrita de rascunho do authencesn: crypto_authenc_esn_decrypt() usa dst[assoclen + cryptlen] (além da tag, dentro das páginas do page cache) como espaço de rascunho para a reorganização do número de sequência ESN, escrevendo 4 bytes controlados pelo atacante e nunca os restaurando.

A página corrompida nunca é marcada como suja, portanto o arquivo em disco permanece inalterado. Mas o page cache em memória é o que realmente é lido — tornando a corrupção imediatamente visível em todo o sistema.

Exploit

O exploit corrompe o page cache de /usr/bin/su (ou qualquer binário setuid) com um pequeno payload de shellcode, 4 bytes por vez. Após todas as iterações, executar su executa o payload e concede um shell root.

Python (exp.py)


Requer Python 3.10+ (para `os.splice`). Usa apenas módulos da biblioteca padrão.
root@kitploit:~
python3 exp.py

Golang (exp.go)


Sem dependência de Python. Compile e execute:
root@kitploit:~
go run exp.go
go build -ldflags "-w -s" -trimpath -o exp exp.go

tinygo build -o exp exp.go

Impacto

CapacidadeDetalhes

Referências

  • copy.fail — Aviso Oficial
  • Xint Blog — Copy Fail: 732 Bytes até Root
  • Entrada NVD
  • reescrita em C

Aviso Legal

Este repositório é publicado apenas para fins educacionais e de pesquisa defensiva. Não use este código em sistemas que você não possui ou para os quais não tenha permissão explícita de teste.

Baixar ferramenta
Portátil
O mesmo script funciona em Ubuntu, Amazon Linux, RHEL, SUSE e outros — sem offsets por distro
MinúsculoO exploit em Python tem ~732 bytes
FurtivoContorna o caminho de escrita do VFS; a página nunca é marcada como suja; checksums em disco permanecem inalterados
Entre contêineresO page cache é compartilhado entre contêineres — vetor de escape de contêiner (ver Parte 2)