Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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
Ferramentas/GitHubGitHub/nisec-eric/cve-2026-31431
Escalada de PrivilégiosSegurança de ContêineresFrameworks de ExploraçãoAnálise de VulnerabilidadesExploraçãoTestes de PenetraçãoSegurança na NuvemAprendizado e EducaçãoRed TeamingExploração de Binários
GitHub
229há 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
nisec-eric/cve-2026-31431

cve-2026-31431

# Exploit de escalada de privilégios local no kernel Linux para CVE-2026-31431, fornecendo um PoC confiável de disparo único com múltiplas implementações em linguagens, scanner de vulnerabilidades e script de mitigação.

Ver Repositório

CVE-2026-31431 — Repositório de Pesquisa "Copy Fail"

Severity: High CVSS: 7.8 CVE Release License: MIT

Uma escalada de privilégios local 100% confiável no Linux que afeta todas as distribuições mainstream desde 2017.

Um único bug lógico em authencesn, encadeado através de AF_ALG e splice() em uma escrita de 4 bytes no page-cache — explorável silenciosamente por quase uma década.

⚠️ Aviso Legal

Todo o código e documentação neste repositório são fornecidos exclusivamente para pesquisa de segurança autorizada e fins educacionais.

Executar código de exploit contra sistemas que você não possui ou para os quais não tem autorização escrita explícita para testar é ilegal. Ao usar este repositório, você aceita total responsabilidade por suas ações.


Visão Geral

CampoDetalhe
CVECVE-2026-31431
AliasCopy Fail
TipoEscalada de privilégios local no kernel Linux (LPE) / escrita arbitrária no page-cache
CVSS v3.17.8 ALTA — AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CWECWE-669 (Transferência Incorreta de Recursos Entre Esferas)
Componentecrypto/algif_aead — template criptográfico authencesn
Introduzido2017 (commit 72548b093ee3)
CorrigidoCommit mainline a664bf3d603d (2026-04-01)
Kernel corrigidov6.18.22+, v6.19.12+, v7.0+
DescobridorXint / Theori (Taeyang Lee + auditoria assistida por IA Xint Code)
Divulgação2026-04-29 — copy.fail

Por que Copy Fail é diferente

LPE típico no LinuxCopy Fail
Condição de corridaNecessáriaNenhuma
Offsets por distribuiçãoNecessáriosNenhum
Confiabilidade30–80%100%, disparo único
Janela afetadaEstreita2017 → 2026 (9 anos)
Modificação em discoPossívelNenhuma (furtivo)
Entre containersNãoSim

Estrutura do Repositório

.
├── README.md                          ← Você está aqui
├── LICENSE                            ← MIT
├── .gitignore
├── docs/
│   ├── analysis-report.md             ← Análise de segurança abrangente
│   ├── analysis-report.html           ← Versão HTML estilizada
│   ├── exploit-walkthrough.md         ← Análise do PoC linha por linha
│   └── exploit-walkthrough.html       ← Versão HTML estilizada
└── poc/
    ├── README.md                      ← Guia de uso do PoC
    ├── copy_fail_exp.py               ← PoC oficial (732 bytes, ofuscado)
    ├── copy_fail_exp_readable.py      ← Versão desofuscada + anotada
    ├── copy_fail_exp_compat.py        ← Compatível com Python 3.6+ (splice via ctypes)
    ├── copy_fail_exp_alpine.py        ← Variante para Alpine Linux
    ├── copy_fail_exp.c                ← Implementação em C (zero dependências)
    ├── copy_fail_exp.go               ← Implementação em Go (zero dependências)
    ├── copy_fail_rust/                ← Implementação em Rust
    │   ├── Cargo.toml
    │   └── src/main.rs
    ├── check_vulnerable.py            ← Scanner de vulnerabilidade
    └── mitigate.sh                    ← Script de mitigação com um clique

Início Rápido

Baixar release pré-compilado

# Dos GitHub Releases — binários pré-compilados (Linux amd64/arm64) + todos os scripts Python
wget https://github.com/nisec-eric/cve-2026-31431/releases/latest/download/copy-fail-go-linux.tar.gz
wget https://github.com/nisec-eric/cve-2026-31431/releases/latest/download/copy-fail-c-linux.tar.gz
wget https://github.com/nisec-eric/cve-2026-31431/releases/latest/download/copy-fail-python.tar.gz

tar xzf copy-fail-go-linux.tar.gz
tar xzf copy-fail-c-linux.tar.gz
tar xzf copy-fail-python.tar.gz

# Binário estático Go (sem necessidade de Python)
chmod +x copy-fail-exp-amd64
./copy-fail-exp-amd64

# Binário estático C
chmod +x copy-fail-exp-c-amd64
./copy-fail-exp-c-amd64

# Ou use os scripts Python diretamente
python3 check_vulnerable.py

📦 Releases são construídos automaticamente via GitHub Actions a cada push de tag v*. Os binários Go e C são compilados para linux/amd64 e linux/arm64 como binários estáticos.

1. Verifique se seu sistema é vulnerável

python3 poc/check_vulnerable.py

2. Aplique a mitigação (sem necessidade de reinicialização)

sudo bash poc/mitigate.sh

Isso coloca o módulo do kernel algif_aead na lista negra — não quebra nada em 99% dos sistemas.

3. Corrija adequadamente — atualize seu kernel

# Debian/Ubuntu
sudo apt update && sudo apt upgrade linux-image-*

# RHEL/CentOS/Fedora
sudo dnf update kernel

# Reinicie no kernel corrigido
sudo reboot

4. Verifique

python3 poc/check_vulnerable.py
# Código de saída 1 = protegido ✓

Exploits PoC

AVISO: Execute apenas em sistemas que você possui ou para os quais tem autorização para testar.

ArquivoLinguagemRequisitosNotas
copy_fail_exp.pyPython 3.10+apenas stdlibPoC oficial de 732 bytes
copy_fail_exp_compat.pyPython 3.6+stdlib + ctypesFunciona em CentOS 7, AL2 etc.
copy_fail_exp_alpine.pyPython 3.10+apenas stdlibVisa /bin/ping no Alpine
copy_fail_exp.cCgcc + headers do LinuxBinário estático, zero dependências
copy_fail_exp.goGo 1.21+apenas stdlibBinário estático, zero dependências
copy_fail_rust/Rust 1.70+crates libc + flate2Binário estático
# C
gcc -static -o exp ./poc/copy_fail_exp.c && ./exp

# Python
python3 poc/copy_fail_exp.py
python3 poc/copy_fail_exp_compat.py        # Python < 3.10

# Go
go build -o exp ./poc/copy_fail_exp.go && ./exp

# Rust
cd poc/copy_fail_rust && cargo run --release

Todas as versões aceitam um argumento opcional para visar um binário SUID diferente:

python3 poc/copy_fail_exp.py /usr/bin/passwd
./exp /usr/bin/sudo

Documentação

📄 Relatório de Análise de Segurança (HTML)

Avaliação completa da vulnerabilidade cobrindo:

  • Causa raiz técnica (proveniência da página no scatterlist, escrita scratch em authencesn)
  • Versões afetadas e status de correção nas distribuições
  • Remediação para Linux bare-metal, Kubernetes, Docker, WSL2
  • Orientação de detecção e monitoramento (auditd, SELinux, integridade de arquivos)
  • Linha do tempo da divulgação

📄 Walkthrough do Exploit (HTML)

Análise do PoC linha por linha cobrindo:

  • Código-fonte desofuscado completo com anotações
  • Internals do kernel: fluxo do socket AF_ALG, entrega no page-cache via splice(), mecânica de sg_chain()
  • A escrita scratch ESN em authencesn que cruza limites do scatterlist
  • Análise do payload (shellcode ELF de 160 bytes)
  • Variantes de ataque: injeção em /etc/passwd, visando bibliotecas compartilhadas, escape de container
  • Limitações e fronteiras do ataque

Impacto por Ambiente

Baixar ferramenta