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 — Análise - POC - Mitigação | Kitploit
Ferramentas/GitHubGitHub/sebastian294/cve-2026-31431
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoAprendizado e EducaçãoExploração de BináriosLabs e Prática
GitHubsebastian294/cve-2026-31431

cve-2026-31431

Análise - POC - Mitigação

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: Laboratório de Pesquisa LPE no Kernel Linux

Apenas para fins educacionais. NÃO utilize em sistemas sem autorização explícita.


Índice

  • Descrição da vulnerabilidade
  • Componentes afetados
  • Como funciona
  • Configuração do lab (Docker)
  • PoC — Demonstração
  • Mitigação
  • Referências

Descrição da vulnerabilidade

CampoValor
CVECVE-2026-31431
AliasCopy Fail
CVSS7.8 (High)
TipoLocal Privilege Escalation (LPE)
Kernel afetado2017 – 2026 (commit 72548b093ee3 em diante)
Correção upstreamcommit a664bf3d603d (revert de 2017)
Divulgação29 de abril de 2026 (Theori / Xint Code)

Copy Fail é um bug lógico determinístico (não requer race conditions) no subsistema criptográfico do kernel Linux. Permite a um usuário sem privilégios escrever 4 bytes controlados no page cache de qualquer arquivo legível do sistema, incluindo binários setuid como su ou sudo.

Por que é especialmente grave?

Diferente de vulnerabilidades anteriores similares:


Componentes afetados

root@kitploit:~
Linux kernel — crypto/authencesn.c
  └── algif_aead (módulo AF_ALG)
        └── otimização in-place (commit 72548b093ee3, 2017)
              └── Escrita scratch AEAD → cruza boundary do scatterlist
                    └── escreve 4 bytes no page cache de arquivo externo

Distribuições afetadas: Ubuntu, Debian, RHEL, Amazon Linux, SUSE, Fedora, Arch, AlmaLinux — qualquer distro com kernel ≥ 2017.


Como funciona

Causa raiz

Em 2017 foi introduzida uma otimização que faz com que req->src e req->dst apontem para o mesmo scatterlist combinado. Isso faz com que as páginas do page cache (provenientes de splice()) fiquem encadeadas diretamente no scatterlist de destino gravavel.

Cadeia de exploração

root@kitploit:~
1. Abrir socket AF_ALG com algoritmo authencesn
2. Usar splice() para alimentar páginas do page cache do binário alvo
   para o socket AF_ALG (ex: /usr/bin/sudo)
3. Executar operação de descriptografia AEAD
4. authencesn usa o buffer de destino como scratch pad →
   escreve seqno_hi (4 bytes controlados) FORA da saída legítima,
   cruzando o boundary do scatterlist
5. Os 4 bytes aterrissam na página do page cache do binário alvo
6. O arquivo em disco NÃO muda → as verificações de integridade não detectam nada
7. O binário modificado em memória executa payload → root

Por que é sorrateiro

A escrita desvia do caminho normal de escrita do VFS. O arquivo em disco permanece intacto. Ferramentas como sha256sum, aide, tripwire, ou inotify não detectam a mudança porque operam sobre o arquivo em disco ou sobre o inode, não sobre o page cache em memória.


Configuração do lab (Docker)

O lab usa um kernel vulnerável para demonstrar a corrupção do page cache. Em ambientes Docker, a escalada completa de privilégios depende da configuração do host (kernel compartilhado).

root@kitploit:~
# Clonar o repo

cd cve-2026-31431

# Construir a imagem vulnerável
docker build -t copyfail-lab -f docker/Dockerfile.vulnerable .

# Executar o lab
docker run --rm -it \
  --cap-add=NET_ADMIN \
  --security-opt seccomp=unconfined \
  copyfail-lab bash

# Dentro do container:
cd /lab
python3 exploit/poc.py

Requisitos

  • Docker ≥ 20.x
  • Kernel do host: Ubuntu/Debian com kernel 5.x ou 6.x não corrigido (ver tabela em docs/)
  • Python 3.10+ no container (para os.splice)

PoC — Demonstração

Ver exploit/poc.py e exploit/README.md.

O PoC demonstra:

  1. Corrupção do page cache (verificável)
  2. Escrita de 4 bytes controlados em arquivo alvo
  3. LPE completo: depende do kernel do host (ver notas)

Mitigação

Ver mitigation/README.md para instruções detalhadas.

TL;DR — Mitigação imediata (sem reinicialização):

root@kitploit:~
# Desabilitar o módulo afetado
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf
sudo modprobe -r algif_aead 2>/dev/null || true

Correção definitiva: Atualizar o kernel para uma versão corrigida (após a664bf3d603d).


Estrutura do repositório

root@kitploit:~
cve-2026-31431/
├── README.md                    ← este arquivo
├── docs/
│   ├── technical-analysis.md    ← análise técnica aprofundada
│   └── affected-kernels.md      ← tabela de versões afetadas/corrigidas
├── exploit/
│   ├── README.md                ← documentação do PoC
│   └── poc.py                   ← proof of concept (Python 3.10+)
├── mitigation/
│   ├── README.md                ← guia de mitigação
│   ├── disable-algif.conf       ← modprobe config
│   └── check-vulnerable.sh      ← script de detecção
├── docker/
│   ├── Dockerfile.vulnerable    ← lab vulnerável
│   └── Dockerfile.patched       ← lab com mitigação aplicada
└── scripts/
    └── setup-lab.sh             ← automação do lab

Linha do tempo de divulgação


Referências

  • Xint Code — Copy Fail writeup oficial
  • copy.fail — site do advisory
  • GitHub oficial — theori-io/copy-fail-CVE-2026-31431
  • NVD — CVE-2026-31431
  • Ubuntu Security Advisory
  • Microsoft Security Blog
  • Unit 42 — Palo Alto Analysis
  • Upstream fix commit a664bf3d603d

Baixar ferramenta
VulnTipoRequer race?Portável?Tamanho exploit
Dirty Cow (CVE-2016-5195)CoW raceSimParcial~KB
Dirty Pipe (CVE-2022-0847)pipe bufferNãoLimitado~KB
Copy Fail (CVE-2026-31431)LógicoNãoTotal732 bytes
DataEvento
2017Commit 72548b093ee3 introduz o bug no kernel
~2025Theori/Xint Code começa análise do subsistema crypto
Abr 28, 2026Coordenação com distribuidores
Abr 29, 2026Divulgação pública + PoC publicado
May 1, 2026Kernels corrigidos disponíveis em repositórios de produção
May 1, 2026Adicionado ao catálogo CISA KEV