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
CVE-2026-31431 — # Reescritura en Golang del exploit de escalada de privilegios locales Copy Fail (CVE-2026-31431), que corrompe la caché de páginas para obtener root en sistemas Linux. | Kitploit
Herramientas/GitHubGitHub/gr-1m/cve-2026-31431
Escalada de PrivilegiosFrameworks de ExploitsAnálisis de VulnerabilidadesExplotaciónEscape de ContenedoresExplotación de Binarios
GitHubgr-1m/cve-2026-31431

CVE-2026-31431

# Reescritura en Golang del exploit de escalada de privilegios locales Copy Fail (CVE-2026-31431), que corrompe la caché de páginas para obtener root en sistemas Linux.

Ver Repositorio
1hace 3 mesesAún no revisado

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

CVE-2026-31431 — Copy Fail

中文版

732 Bytes para Root en Todas las Principales Distribuciones de Linux

CVE-2026-31431 (Copy Fail) es un error lógico en la plantilla criptográfica authencesn del kernel de Linux. Permite que un usuario local sin privilegios active una escritura determinista y controlada de 4 bytes en la caché de páginas de cualquier archivo legible del sistema.

Resumen

  • ID de CVE: CVE-2026-31431
  • Tipo: Escalada de Privilegios Local / Escape de Contenedor
  • Afecta: Kernels de Linux con CONFIG_CRYPTO_AUTHENC (prácticamente todas las principales distribuciones desde 2017)
  • Descubierto por: Xint Code Research Team, con la idea inicial del investigador de Theori, Taeyang Lee

Cómo Funciona

El error encadena dos comportamientos:

  1. AF_ALG + splice: splice() transfiere páginas de la caché de páginas por referencia al scatterlist de un socket AF_ALG. Para el modo de descifrado AEAD in-place, las páginas de etiqueta (de la caché de páginas del archivo objetivo) permanecen encadenadas al scatterlist de salida mediante sg_chain().

  2. Escritura temporal en authencesn: crypto_authenc_esn_decrypt() usa dst[assoclen + cryptlen] (más allá de la etiqueta, dentro de las páginas de la caché de páginas) como espacio temporal para la reorganización del número de secuencia ESN, escribiendo 4 bytes controlados por el atacante y nunca restaurándolos.

La página corrupta nunca se marca como sucia, por lo que el archivo en disco permanece sin cambios. Pero la caché de páginas en memoria es lo que realmente se lee, lo que hace que la corrupción sea inmediatamente visible en todo el sistema.

Exploit

El exploit corrompe la caché de páginas de /usr/bin/su (o cualquier binario setuid) con un pequeño payload de shellcode, 4 bytes a la vez. Después de todas las iteraciones, ejecutar su ejecuta el payload y otorga una shell de root.

Python (exp.py)


Requiere Python 3.10+ (para `os.splice`). Usa solo módulos de la biblioteca estándar.
root@kitploit:~
python3 exp.py

Golang (exp.go)


Sin dependencia de Python. Compila y ejecuta:
root@kitploit:~
go run exp.go
go build -ldflags "-w -s" -trimpath -o exp exp.go

tinygo build -o exp exp.go

Impacto

CapacidadDetalles

Referencias

  • copy.fail — Aviso Oficial
  • Blog de Xint — Copy Fail: 732 Bytes para Root
  • Entrada en NVD
  • Reescritura en C

Aviso Legal

Este repositorio se publica únicamente con fines educativos y de investigación defensiva. No use este código en sistemas que no sean de su propiedad o para los que no tenga permiso explícito de prueba.

Descargar herramienta
Portátil
El mismo script funciona en Ubuntu, Amazon Linux, RHEL, SUSE y más — sin offsets específicos por distribución
DiminutoEl exploit en Python tiene ~732 bytes
SigilosoEvita la ruta de escritura VFS; la página nunca se marca como sucia; las sumas de verificación en disco no cambian
Entre contenedoresLa caché de páginas se comparte entre contenedores — vector de escape de contenedor (ver Parte 2)