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
linux-copy-fail-CVE-2026-31431 — Prueba de concepto del exploit para CVE-2026-31431 (Copy-Fail), una vulnerabilidad del kernel de Linux en AF_ALG y splice() que permite el envenenamiento de la caché de páginas y la escalada local de privilegios. Incluye análisis, resultados de laboratorio y script de detección. | Kitploit
Herramientas/GitHubGitHub/adilkurtulmus/linux-copy-fail-cve-2026-31431
Escalada de PrivilegiosForensia de MemoriaAnálisis de VulnerabilidadesExplotaciónAprendizaje y EducaciónExplotación de BinariosLabs y Práctica
GitHubadilkurtulmus/linux-copy-fail-cve-2026-31431

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

linux-copy-fail-CVE-2026-31431

Prueba de concepto del exploit para CVE-2026-31431 (Copy-Fail), una vulnerabilidad del kernel de Linux en AF_ALG y splice() que permite el envenenamiento de la caché de páginas y la escalada local de privilegios. Incluye análisis, resultados de laboratorio y script de detección.

Ver Repositorio
hace 3 mesesAún no revisado

Análisis de Copy-Fail en Linux (CVE-2026-31431) 🛡️

Este repositorio contiene un análisis en profundidad, una Prueba de Concepto (PoC) y los resultados de pruebas de laboratorio para la vulnerabilidad CVE-2026-31431, conocida popularmente como "Copy-Fail".

Copy-Fail explota una falla lógica en la API de Criptografía del Kernel de Linux (AF_ALG) combinada con la llamada al sistema splice(). Permite a un atacante local sin privilegios realizar un Envenenamiento de la Caché de Páginas (Page Cache Poisoning), lo que conduce a una Escalada de Privilegios Local (LPE).

🧠 Resumen Técnico: Envenenamiento de la Caché de Páginas

A diferencia de los exploits tradicionales que modifican archivos en el disco, Copy-Fail apunta directamente a la Caché de Páginas (RAM). Cuando se lee un archivo, el kernel almacena una copia en la RAM para mejorar el rendimiento. Debido a un error de gestión de memoria en el algoritmo authenc en versiones específicas del kernel, un atacante puede engañar al kernel para que sobrescriba estas páginas de memoria "de solo lectura".

Al envenenar las páginas de memoria de binarios SETUID como /usr/bin/su, es posible omitir la autenticación y generar una shell de root.

🧪 Entornos de Laboratorio y Resultados de Pruebas

Se realizaron pruebas en múltiples distribuciones de Ubuntu, examinando específicamente el impacto del backporting del kernel y la gestión de parches.

DistribuciónVersión del KernelFecha del ParcheResultadoObservación
Ubuntu 24.046.8.0-87-genericOct 2025❌ FallidoActualizaciones de seguridad activas
Ubuntu 22.045.15.0-125-genericSep 2024✅ ÉXITOVulnerable (Sin parche)
Ubuntu 18.044.15.0-197-genericNov 2022✅ ÉXITOVulnerable (Sin parche)

La Paradoja del Backport

Los números de versión del kernel pueden ser engañosos. Mientras que los kernels "más nuevos" como el 6.8 están protegidos mediante parches de seguridad, los kernels más antiguos o EOL (Fin de Vida) como el 4.15 y el 5.15 permanecieron completamente vulnerables debido a la falta de correcciones backporteadas.

📊 Análisis Comparativo de Ubuntu 22.04 (Kernel 5.15)

Durante la investigación, se obtuvo un resultado sorprendente al probar dos sistemas Ubuntu 22.04 diferentes que compartían la misma versión principal del kernel:

Versión del Kernel

Análisis:

Esta prueba demuestra que la seguridad del sistema no puede medirse únicamente por el número de versión principal. Un servidor que ejecuta 5.15.0-125 puede ser comprometido en segundos, mientras que 5.15.0-170 bloquea completamente el ataque.

Salida de Explotación Exitosa (Kernel 5.15.0-125):

root@kitploit:~
$ python3 ubuntu_22.04_copy_fail_exploit.py 
[*] Envenenando /usr/bin/su (Ubuntu 22.04 / Kernel 5.15)...
[+] Exploit completado. Activando Root...
# id
uid=0(root) gid=1004(jastin) groups=1004(jastin)
# whoami
root
# export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# /bin/bash -i
root@ovh-net-dream01:/tmp#

🛠️ Prueba de Concepto (PoC)

La PoC se desarrolló utilizando ctypes para garantizar la compatibilidad entre diferentes versiones de Python (específicamente para versiones que carecen de soporte nativo para os.splice).

Características Clave:

  • Llamadas de bajo nivel a libc.splice mediante ctypes.
  • Caché forzada del binario objetivo.
  • Demostración del impacto lateral (el envenenamiento por un usuario afecta a todos los usuarios).

Ejecución del Exploit:

1.Cargar los módulos criptográficos requeridos:

sudo modprobe af_alg algif_aead authenc echainiv

2.Ejecutar el exploit:

python3 final_exploit.py

🎥 Demostración

root@kitploit:~
$ python3 ubuntu_18.04_copy_fail_exploit.py
[*] Envenenando /bin/su (Kernel 4.15)...
[+] ¡Memoria envenenada! Activando Root...
# id
uid=0(root) gid=1004(jastin) groups=1004(jastin)
# whoami
root
# export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# /bin/bash -i
root@ovh-net-dream02:/tmp#

🛡️ Mitigación y Prevención

  • 1. La Solución Definitiva: Actualización del Kernel

  • sudo apt update && sudo apt upgrade -y
  • sudo reboot

2. Respuesta de Emergencia: Vaciar la Caché

  • Para limpiar las páginas envenenadas en memoria

sync; echo 3 | sudo tee /proc/sys/vm/drop_caches

3. Defensa Proactiva: Bloquear Módulos

  • echo "blacklist authenc" | sudo tee /etc/modprobe.d/blacklist-authenc.conf
  • echo "blacklist algif_aead" | sudo tee -a /etc/modprobe.d/blacklist-authenc.conf
  • sudo depmod -a

🛡️ Script de Detección de Vulnerabilidad

root@kitploit:~
# 1. Verificar la versión del kernel
# uname -r

# 2. Verificar módulos cargados (Seguro si no hay salida)
# lsmod | grep -E "algif_aead|authencesn"

# 3. Prueba Crítica — enlace authencesn
python3 -c "
import socket
try:
    s = socket.socket(38, 5, 0)
    s.bind(('aead', 'authencesn(hmac(sha256),cbc(aes))'))
    print('[!] CRÍTICO — ¡Sistema Vulnerable!')
    s.close()
except:
    print('[+] Seguro — authencesn inaccesible')
"

# 4. Hash de binarios setuid (referencia)
sha256sum /usr/bin/su /usr/bin/sudo /usr/bin/passwd

Tabla de Evaluación:

ResultadoSignificado
Sin salida de lsmod + error de enlace✅ Seguro
Salida de lsmod existe O enlace exitoso⚠️ Vulnerable, aplicar parches inmediatamente

Aviso Legal: Esta investigación y la PoC son solo para fines educativos y de pruebas de seguridad autorizadas. El uso en sistemas no autorizados puede tener consecuencias legales.

Descargar herramienta
Fecha del Parche
Resultado
Estado
5.15.0-125Sep 2024✅ ÉXITOVulnerable (Exploit Ejecutado)
5.15.0-170Ene 2026❌ FALLIDOSeguro (Parcheado)