Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-31431-live-code-corruption — CVE-2026-31431 (Copy Fail) exploit novedoso: corrupción de código en vivo mediante caché de páginas. Sobrescribe el código de exit() de libc a través del uso compartido de páginas MAP_PRIVATE — afecta a TODOS los procesos en ejecución. | Kitploit
Herramientas/GitHubGitHub/ikow/cve-2026-31431-live-code-corruption
Escalada de PrivilegiosFrameworks de ExploitsAnálisis de VulnerabilidadesExplotaciónExplotación de Binarios
GitHubikow/cve-2026-31431-live-code-corruption

CVE-2026-31431-live-code-corruption

CVE-2026-31431 (Copy Fail) exploit novedoso: corrupción de código en vivo mediante caché de páginas. Sobrescribe el código de exit() de libc a través del uso compartido de páginas MAP_PRIVATE — afecta a TODOS los procesos en ejecución.

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
Ver Repositorio
118hace 5 mesesAún no revisado

CVE-2026-31431 — Corrupción de Código en Vivo mediante Caché de Páginas

Una técnica de explotación novedosa para CVE-2026-31431 ("Copy Fail") que corrompe el código ejecutable de procesos en ejecución a través de la caché de páginas del kernel de Linux, logrando escalada de privilegios a root.

Qué lo Hace Diferente

Todos los exploits publicados para este CVE corrompen archivos de datos — modificando /etc/passwd para cambiar el UID de root, o parcheando binarios setuid en disco. Este exploit hace algo fundamentalmente diferente: corrompe código ejecutable en vivo en memoria a través del mecanismo de caché de páginas del kernel.

Exploits publicadosEste exploit
ObjetivoArchivos de datos (/etc/passwd, /usr/bin/su)Código ejecutable (sección .text de libc)
MecanismoContenido de archivo analizado por programasPáginas de código ejecutadas directamente por la CPU
AlcanceArchivo únicoTODOS los procesos que mapean libc
Cambio en discoSí (contenido del archivo modificado)No (solo caché de páginas en memoria)
DetecciónMonitoreo de integridad de archivosInvisible para verificaciones del sistema de archivos

Cómo Funciona

La Perspectiva de la Caché de Páginas

Cuando Linux mapea una biblioteca compartida con MAP_PRIVATE, no copia inmediatamente las páginas del archivo. En su lugar, las entradas de la tabla de páginas del proceso apuntan directamente a las páginas físicas de la caché de páginas. La copia solo ocurre al escribir (copy-on-write). Para páginas de código (.text), los procesos nunca escriben en ellas — por lo que permanecen compartidas con la caché de páginas para siempre.

Process A (bash)     Process B (su)      Page Cache (libc)
  ┌──────┐            ┌──────┐            ┌──────────┐
  │ PTE  │───────────>│      │            │ exit():  │
  │      │            │ PTE  │───────────>│ endbr64  │
  └──────┘            └──────┘            │ push rax │
    MAP_PRIVATE         MAP_PRIVATE       │ ...      │
    (clean page)        (clean page)      └──────────┘
                                               ↑
                                    Copy Fail escribe aquí!

CVE-2026-31431 nos da una escritura controlada de 4 bytes en la caché de páginas de cualquier archivo legible. Al corromper las páginas de código de libc, modificamos las instrucciones que cada proceso ejecuta.

El Exploit

  1. Escribir shellcode (39 bytes) en la ubicación de la función on_exit() en la caché de páginas de libc — 10 escrituras de 4 bytes cada una
  2. Parchear exit() para saltar a nuestro shellcode — 1 escritura de 4 bytes
  3. Disparador: cualquier programa que llame a exit() (prácticamente todos los programas) ejecuta nuestro shellcode

El shellcode realiza setuid(0) → setgid(0) → execve("/bin/sh"), otorgando una shell de root.

Resumen de CVE-2026-31431

  • Bug: Error de lógica en crypto/algif_aead.c — la optimización in-place de 2017 (72548b093ee3) permite que splice() alimente páginas de la caché de páginas al descifrado AEAD. El reordenamiento ESN del algoritmo authencesn escribe 4 bytes de scratch de vuelta al scatterlist de origen, corrompiendo la caché de páginas del archivo empalmado.
  • Primitiva: Escritura determinista de 4 bytes en la caché de páginas de cualquier archivo legible
  • Requisitos: Ninguno — los sockets AF_ALG están disponibles para usuarios sin privilegios
  • Corrección: Copiar a un buffer fuera de lugar antes de la operación criptográfica (kernel 6.12.85+, 6.15+)

Uso

# Compilar
gcc -o exploit exploit.c

# Ejecutar como usuario sin privilegios
./exploit /lib/x86_64-linux-gnu/libc-2.31.so

# Disparador — ejecutar cualquier programa (llama a exit())
su -c id
# uid=0(root) gid=0(root) groups=0(root)

Probado En

  • Kernel: 6.12.79 (Ubuntu/Debian, antes de la corrección en 6.12.85)
  • glibc: 2.31-0ubuntu9.7
  • Resultado: Shell de root completa, verificada por el registro del kernel: process 'id' launched '/bin/sh'

Archivos

  • exploit.c — Exploit completo con inyección de shellcode
  • copyfail_test.c — Verificación de la primitiva (prueba la escritura de 4 bytes)

Cronología

  • 2017: Se introdujo la optimización in-place (72548b093ee3)
  • 2026-04-29: Se divulga CVE-2026-31431
  • 2026-04-30: Corrección publicada en el kernel 6.12.85
  • 2026-05-06: Se desarrolló este exploit (técnica novedosa de corrupción de código en vivo)

Referencias

  • NVD — CVE-2026-31431
  • Commit de corrección
  • Análisis de Copy Fail (Xint)

Aviso Legal

Esta herramienta se proporciona únicamente para investigación de seguridad autorizada y fines educativos. No la utilice contra sistemas que no posea o para los cuales no tenga permiso explícito de prueba.

Relacionado: Dirty Frag (7 de mayo de 2026)

Dirty Frag divulgó dos variantes más de escritura en caché de páginas en la misma clase de bug:

  • Ruta ESP (esp4/esp6): Mismo sumidero authencesn que Copy Fail, alcanzado mediante IPsec ESP-in-UDP. Requiere namespaces de usuario. Escritura de 4 bytes.
  • Ruta RxRPC (rxrpc/rxkad): Descifrado in-place pcbc(fcrypt) en página fijada por splice. No se necesitan namespaces. Escritura de 8 bytes.

La técnica de corrupción de código en vivo en este repositorio funciona con cualquiera de estas primitivas de escritura en caché de páginas — solo reemplace la función write4() con el disparador ESP o RxRPC. La técnica es agnóstica a la primitiva.

Descargar herramienta