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
copy-fail-CVE-2026-31431 — Exploit de escalada de privilégios local para CVE-2026-31431, uma sobrescrita de page-cache via AF_ALG + splice no kernel Linux. Inclui PoC, script de detecção BPFtrace e ambiente de teste QEMU para pesquisa de segurança autorizada. | Kitploit
Ferramentas/GitHubGitHub/astounds/copy-fail-cve-2026-31431
Escalada de PrivilégiosFrameworks de ExploraçãoAnálise de VulnerabilidadesExploraçãoAprendizado e EducaçãoExploração de BináriosLabs e Prática
GitHub

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
astounds/copy-fail-cve-2026-31431

copy-fail-CVE-2026-31431

Exploit de escalada de privilégios local para CVE-2026-31431, uma sobrescrita de page-cache via AF_ALG + splice no kernel Linux. Inclui PoC, script de detecção BPFtrace e ambiente de teste QEMU para pesquisa de segurança autorizada.

Ver Repositório
15há 5 mesesAinda não revisado

CVE-2026-31431 — Copy Fail

Escalação de privilégios local no kernel Linux via AF_ALG + sobrescrita do page-cache com splice

CVE CVSS License

Apenas para pesquisa de segurança autorizada, testes de penetração e fins educacionais. Não use contra sistemas que você não possui ou para os quais não tem permissão explícita por escrito para testar.

Writeup Técnico


Índice

  • Descrição
  • Detalhes da Vulnerabilidade
  • Estrutura do Repositório
  • Início Rápido
  • Detecção
  • Requisitos
  • Mitigação
  • Ambiente de Teste (opcional)
  • Referências
  • Licença

Descrição

CVE-2026-31431 é uma vulnerabilidade de escalação de privilégios local (LPE) no kernel Linux. Um usuário local sem privilégios pode obter acesso root combinando a interface de socket AF_ALG com splice() para realizar uma escrita autenticada diretamente em uma página do page-cache pertencente a um binário setuid.

O exploit sobrescreve o binário su no page-cache sem modificar o inode no disco, contornando mecanismos de integridade que dependem apenas de metadados de arquivo ou checksums em nível de bloco.


Detalhes da Vulnerabilidade

CampoValor
ID CVECVE-2026-31431
TipoEscalação de Privilégios Local (LPE)
Pontuação CVSS v3.17.8 Alta — AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H (fonte: kernel.org)
Subsistemas do kernelcrypto/af_alg.c, mm/splice.c
Vetor de ataqueLocal — requer conta de usuário sem privilégios
Causa raizalgif_aead aceita sendfile() sobre um socket AEAD sem impor semânticas de copy-on-write na página do page-cache mapeada antes de splice() concluir a transferência

Ambientes Afetados

DistroVersão do kernelArquitetura
Ubuntu 24.04 LTS6.17.0-1007-awsx86_64
Amazon Linux 20236.18.8-9.213.amzn2023x86_64
RHEL 10.16.12.0-124.45.1.el10_1x86_64
SUSE 166.12.0-160000.9-defaultx86_64
Raspberry Pi OS (Pi 5)6.12.75+rpt-rpi-2712aarch64

Estrutura do Repositório

.
├── exploit.py    # PoC — sobrescrita do page-cache e escalação de privilégios
├── detect.bt     # Script BPFtrace para detecção em tempo real
├── run-vm.sh     # Automação de ambiente de teste QEMU (opcional)
├── PAYLOAD.md    # Análise de codificação do payload (hex → zlib → ELF → shellcode)
└── LICENSE

Início Rápido

Execute exploit.py como um usuário local sem privilégios em qualquer sistema vulnerável — não é necessário sudo:

python3 exploit.py

O script executa os seguintes passos:

  1. Verifica o suporte do kernel para AF_ALG (algif_aead) e localiza o binário su.
  2. Seleciona e descomprime o payload apropriado para a arquitetura.
  3. Abre o binário su como um descritor de arquivo bruto e sobrescreve suas páginas do page-cache via AF_ALG + sendfile.
  4. Testa a escalação de privilégios. Se bem-sucedida, abre um shell root.

Arquiteturas suportadas:

ArquiteturaVariantes
x86_64—
aarch64—
riscv64—
ppc64le—
armarmv5l, armv6l, armv7l
x86 32-biti386, i486, i586, i686
MIPS 64-bitmips64, mips64el
LoongArchloong64, loongarch64
s390x—

Detecção

Monitore tentativas de exploração em tempo real com detect.bt. Requer root:

sudo bpftrace detect.bt
# ou
doas bpftrace detect.bt

O script rastreia três indicadores por PID usando uma máscara de bits em @suspect[pid]:

BitSyscallIndicador
0x1socket(AF_ALG, SOCK_SEQPACKET)Socket AF_ALG criado
0x2setsockopt(SOL_ALG, ...)Operação criptográfica configurada
0x4sendmsg(MSG_MORE) + splice()Tentativa de sobrescrita do page-cache

Um alerta é disparado quando todos os três bits estão definidos (@suspect[pid] == 0x7) no mesmo PID.


Requisitos

exploit.py

  • Python 3.6+
  • Kernel Linux com o módulo AF_ALG/algif_aead carregado
  • Conta de usuário local sem privilégios (root não é necessário)

detect.bt

  • bpftrace ≥ 0.12
  • Privilégios de root (necessários para rastreamento BPF)
# Ubuntu/Debian
sudo apt install bpftrace

# RHEL/CentOS/Fedora
sudo dnf install bpftrace

# Amazon Linux
sudo yum install bpftrace

# SUSE
sudo zypper install bpftrace

# Alpine
sudo apk add bpftrace

Mitigação

1. Patch (preferencial)

Atualize o pacote do kernel da sua distribuição para uma versão que inclua o commit da linha principal a664bf3d603d, que reverte a otimização in-place do algif_aead de 2017 para que páginas do page-cache não possam mais acabar no scatterlist de destino gravável. A maioria das grandes distribuições já está distribuindo a correção.

2. Desabilitar algif_aead (enquanto aguarda um patch)

O blacklist pode ser contornado com um modprobe algif_aead explícito. A diretiva install .../bin/false substitui completamente o comando de instalação, fazendo com que toda tentativa de carregamento falhe:

echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf
sudo rmmod algif_aead 2>/dev/null || true

O que isso quebra — quase nada

Baixar ferramenta