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

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

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
4há 4 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

Ambientes Afetados


Estrutura do Repositório

root@kitploit:~
.
├── 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:

root@kitploit:~
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:


Detecção

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

root@kitploit:~
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]:

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)
root@kitploit:~
# 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:

root@kitploit:~
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

Os subsistemas na linha "Não" usam a API criptográfica do kernel diretamente — eles nunca passam por AF_ALG. O desempenho cai para bibliotecas criptográficas normais do espaço do usuário, que é o que quase todo o resto já usa.

Para verificar se algo no seu sistema usa ativamente AF_ALG antes de desabilitá-lo:

root@kitploit:~
lsof | grep AF_ALG
ss -xa | grep alg

3. Bloquear via seccomp (containers, sandboxes, CI)

Negue a criação de socket(AF_ALG, ...) para cargas de trabalho não confiáveis, independentemente do estado do patch. Adicione AF_ALG (família 38) à sua lista de negação do seccomp, ou use uma política AppArmor/SELinux que restrinja chamadas socket para processos sem privilégios.

4. Monitorar com detect.bt

Implante o script de detecção incluído em qualquer host que não possa ser corrigido ou bloqueado imediatamente. Ele alertará sobre qualquer processo que execute a primitiva completa de exploração em três etapas.


Ambiente de Teste (opcional)

run-vm.sh automatiza a criação de uma VM QEMU Ubuntu 24.04 para testes em um ambiente controlado. exploit.py e detect.bt rodam diretamente em qualquer host vulnerável — QEMU não é necessário.

Requisitos do Host

DependênciaNotas
qemu-system-x86_64 + KVMVeja os comandos de instalação abaixo
wget ou curlDownload da imagem de nuvem
cloud-image-utilsGeração da imagem de seed (Docker pode substituir em hosts não-Debian)

Instalar QEMU

root@kitploit:~
# Ubuntu/Debian
sudo apt install qemu-system-x86 cloud-image-utils wget

# Fedora/RHEL
sudo dnf install qemu-system-x86 wget

# Arch
sudo pacman -Sy qemu

# Alpine
sudo apk add qemu-system-x86 qemu-ui-gtk wget

Executar

root@kitploit:~
sh run-vm.sh

Menu Interativo

root@kitploit:~
1. Iniciar/Criar VM
2. Conectar via SSH
3. Enviar arquivos para a VM  (exploit.py, detect.bt)
4. Executar exploit dentro da VM
5. Executar detect.bt dentro da VM
6. Verificar status da VM
7. Parar VM
8. Limpar arquivos da VM
0. Sair

Credenciais da VM

CampoValor
Usuárioubuntu
Senhacve123
Porta SSH2222

Referências

  • Writeup Técnico — xint.io
  • Análise de Codificação do Payload — detalhamento hex → zlib → ELF → shellcode
  • crypto/af_alg.c — código-fonte do kernel
  • mm/splice.c — código-fonte do kernel

Licença

Este projeto é licenciado sob a GNU General Public License v3.0 ou posterior. Consulte LICENSE para o texto completo.

Aviso legal: Este repositório é fornecido apenas para pesquisa de segurança autorizada, testes de penetração e fins educacionais. Os autores não aceitam nenhuma responsabilidade por qualquer uso indevido ou dano causado por este software.

Baixar ferramenta
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
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
ArquiteturaVariantes
x86_64—
aarch64—
riscv64—
ppc64le—
armarmv5l, armv6l, armv7l
x86 32-biti386, i486, i586, i686
MIPS 64-bitmips64, mips64el
LoongArchloong64, loongarch64
s390x—
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
Afetado?Subsistema/Caso de uso
Nãodm-crypt/LUKS, kTLS, IPsec/XFRM, TLS no kernel
NãoOpenSSL, GnuTLS, builds padrão do NSS
NãoSSH, criptografia do keyring do kernel
TalvezOpenSSL com o engine afalg explicitamente habilitado
TalvezCaminhos de offload criptográfico embarcados ou aplicativos que vinculam sockets aead/skcipher/hash diretamente