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
copy-fail-go — Puerto de Go del PoC de escalada de privilegios en el kernel de Linux CVE-2026-31431 (copy-fail), con enumeración automática de binarios SUID y selección interactiva de objetivos. | Kitploit
Herramientas/GitHubGitHub/3jee/copy-fail-go
Escalada de PrivilegiosFrameworks de ExploitsAnálisis de VulnerabilidadesExplotaciónCTFPruebas de PenetraciónRed TeamingExplotación de Binarios
GitHub3jee/copy-fail-go

copy-fail-go

Puerto de Go del PoC de escalada de privilegios en el kernel de Linux CVE-2026-31431 (copy-fail), con enumeración automática de binarios SUID y selección interactiva de objetivos.

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

copy-fail-go

Puerto en Go del PoC en Python de grenkoca para CVE-2026-31431 (copy-fail).

Esta versión compila a un binario completamente estático con cero dependencias en tiempo de ejecución: sin Python, sin pip, sin restricciones de versión de libc. Colócalo en cualquier objetivo Linux y ejecútalo. También enumera automáticamente todos los binarios SUID legibles mundialmente en el objetivo y te permite elegir cuál explotar de forma interactiva.

Solo para investigación de seguridad autorizada y uso en CTF.


¿Qué es CVE-2026-31431 (copy-fail)?

Descubierto por Theori y divulgado públicamente el 29 de abril de 2026, Copy.Fail es una falla lógica en el módulo criptográfico algif_aead del kernel de Linux introducida mediante una optimización de 2017. Afecta a todas las distribuciones principales de Linux desde 2017.

Al manipular la interfaz criptográfica AF_ALG del kernel, un atacante sin privilegios puede escribir datos controlados directamente en el page cache de Linux, la representación en memoria de los binarios confiables del sistema. Esto permite secuestrar temporalmente binarios como /usr/bin/su sin modificar el archivo en disco, lo que hace que la forensia basada en disco sea ciega al ataque.

A diferencia de muchas fallas de escalada de privilegios locales que dependen de condiciones de carrera o fugas de direcciones del kernel, Copy.Fail es altamente confiable y funciona de manera consistente con solo una cuenta de usuario estándar.

Impacto:

  • Usuario normal → root en cualquier sistema afectado
  • Escape de contenedor al host
  • Trabajos de CI/CD obtienen root en su runner
  • Infraestructura compartida/multiusuario comprometida entre inquilinos
  • Sin modificación de archivos en disco (evade comprobaciones de integridad)

Kernels afectados: Todas las distribuciones desde 2017. Consulta el PoC original de grenkoca para el rango de versiones específico.


Diferencias con el PoC original en Python


Requisitos

  • Kernel de Linux en el rango de versiones afectado
  • Un binario SUID legible mundialmente presente en el objetivo (la herramienta los encontrará)
  • No se requieren privilegios especiales para ejecutarlo

Dependencias de compilación (en tu máquina de compilación)

HerramientaVersión
Go1.21+

Compilación

Compilación nativa en Linux

root@kitploit:~
git clone https://github.com/3jee/copy-fail-go
cd copy-fail-go
go build -o copy-fail .

Compilación cruzada desde macOS o Windows (para Linux x86-64)

root@kitploit:~
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags="-s -w" -o copy-fail .

Las banderas -s -w eliminan la información de depuración para reducir el tamaño del binario. CGO_ENABLED=0 produce un binario completamente estático sin dependencia de libc: colócalo en cualquier objetivo Linux independientemente de la versión de glibc.

Otras arquitecturas

ObjetivoComando
Linux ARM64GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -o copy-fail .
Linux x86 de 32 bitsGOOS=linux GOARCH=386 CGO_ENABLED=0 go build -o copy-fail .

Uso

Transfiere el binario al objetivo y ejecútalo (no se requiere root):

root@kitploit:~
./copy-fail

Ejemplo de sesión:

root@kitploit:~
CVE-2026-31431 (copy-fail) - Go PoC
Basado en el PoC original de grenkoca

Escaneando binarios SUID legibles mundialmente...

Binarios SUID legibles mundialmente encontrados:
------------------------------------
  [1] /usr/bin/su
  [2] /usr/bin/sudo
  [3] /usr/bin/passwd
  [4] /usr/bin/newgrp

Selecciona objetivo [1-4]: 1

[*] Apuntando a: /usr/bin/su
[*] Escribiendo 48 bytes en /usr/bin/su...
[+] Escritura completada. Ejecutando objetivo...
# whoami
root

Cómo funciona

  1. Abre el binario SUID objetivo con O_RDONLY: no se necesita permiso de escritura.
  2. Crea un socket AF_ALG (SOCK_SEQPACKET) vinculado a la transformación AEAD authencesn(hmac(sha256),cbc(aes)).
  3. Envía un sendmsg manipulado con MSG_MORE y mensajes de control SOL_ALG para poner en cola una operación criptográfica contra la entrada del page cache del archivo objetivo.
  4. Usa splice(2) para mover páginas del archivo al socket ALG, activando la ruta vulnerable del kernel que escribe de vuelta las páginas modificadas del page cache sin volver a verificar los permisos del archivo.
  5. Repite para cada fragmento de 4 bytes de la carga útil.
  6. Ejecuta el binario parcheado.

Créditos

  • grenkoca - PoC original en Python
  • Theori - descubrimiento de la vulnerabilidad
  • Este repositorio es un puerto en Go sin minificar con enumeración automática de objetivos

Referencias

  • OVHcloud: Copy.Fail - Cómo proteger rápidamente los clústeres MKS de la vulnerabilidad de día cero del kernel de Linux
  • PoC original en Python de grenkoca (gist)
Descargar herramienta
Original (Python)Este repositorio (Go)
LenguajePython 3Go 1.21+
Objetivo/usr/bin/su codificadoDetectado automáticamente mediante escaneo del sistema de archivos en vivo
Selección de objetivoNingunaMenú numerado interactivo
DistribuciónScriptBinario estático único (sin dependencias de ejecución)