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
CVE-2026-31431 — Linux exploit local de escalada de privilegios para CVE-2026-31431, que abusa de la API criptográfica AF_ALG con splice() para modificar la caché de páginas y lanzar una shell root. | Kitploit
Herramientas/GitHubGitHub/vyahello/cve-2026-31431
Escalada de PrivilegiosFrameworks de ExploitsAnálisis de VulnerabilidadesExplotaciónPruebas de PenetraciónExplotación de Binarios
GitHubvyahello/cve-2026-31431

CVE-2026-31431

Linux exploit local de escalada de privilegios para CVE-2026-31431, que abusa de la API criptográfica AF_ALG con splice() para modificar la caché de páginas y lanzar una shell root.

Ver Repositorio
hace 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 - CVE-2026-31431

Este repositorio contiene un pequeño PoC de escalada de privilegios local en Linux para CVE-2026-31431, también conocido como "Copy Fail".

El exploit ataca la ruta algif_aead del kernel Linux en la API criptográfica de espacio de usuario AF_ALG. Utiliza AF_ALG junto con splice() para forzar al kernel a escribir en la caché de páginas de /usr/bin/su en fragmentos de 4 bytes, y luego ejecuta su después de que la caché de páginas haya sido modificada.

Resumen del Código Fuente

El PoC en copy_fail_exp.py hace cuatro cosas:

  1. Abre un socket AF_ALG para aead con la transformación authencesn(hmac(sha256),cbc(aes)).
  2. Configura la solicitud con los mismos valores de setsockopt() utilizados en la prueba de concepto original.
  3. Utiliza dos llamadas splice() para mover datos del archivo objetivo a la ruta de solicitud AF_ALG, que es la ruta defectuosa del kernel.
  4. Descomprime una carga útil incrustada de 160 bytes y la escribe en el archivo objetivo en fragmentos de 4 bytes. La carga útil es un stub ELF que incluye /bin/sh.

El blob zlib no son datos aleatorios. Es una carga útil compacta diseñada para reemplazar el inicio de /usr/bin/su en la caché de páginas para que la siguiente ejecución de su genere un shell root.

Versiones Afectadas

El código vulnerable se introdujo en los cambios de algif_aead de la era del kernel Linux 4.14 y permaneció presente hasta el parche upstream que revierte la optimización in-place.

Alcance Amplio

  • Kernels Linux compilados desde 2017 en adelante que incluyan la ruta vulnerable algif_aead in-place.
  • La mayoría de las distribuciones principales que distribuyeron kernels en ese período y que aún no han aplicado el backport del parche.
  • Sistemas donde la API criptográfica AF_ALG está habilitada, que es el valor predeterminado en la mayoría de las distribuciones Linux de propósito general.

Probado / Verificado Públicamente

DistribuciónKernel
Ubuntu 24.04 LTS6.17.0-1007-aws
Amazon Linux 20236.18.8-9.213.amzn2023
RHEL 10.1

Puntos de Corrección Upstream

  • 6.18.22
  • 6.19.12
  • 7.0

Las ramas LTS posteriores solo son seguras después de que el backport del proveedor llegue al paquete de kernel que realmente ejecutas.

Reproducción

Usa una VM de laboratorio o un host contenedor que sea tuyo. No ejecutes esto en sistemas de producción.

  1. Arranca un sistema con un kernel vulnerable.
  2. Confirma que /usr/bin/su existe y es setuid-root.
  3. Ejecuta el PoC:
root@kitploit:~
python3 copy_fail_exp.py
  1. Si el exploit tiene éxito, el script parchea /usr/bin/su y luego invoca su. Deberías terminar en un shell root o ver un prompt de root, dependiendo de el entorno.

Ejecución

El script no tiene dependencias adicionales más allá de la biblioteca estándar de Python 3.

root@kitploit:~
python3 copy_fail_exp.py

Si quieres inspeccionar el objetivo primero, el script actualmente usa por defecto /usr/bin/su.

Aplicando el Parche

Si mantienes un kernel downstream, la corrección correcta es aplicar el backport del revert upstream que elimina la optimización AEAD in-place:

  • Commit del parche upstream: a664bf3d603dc3bdcf9ae47cc21e0daec706d7a5
  • El parche revierte principalmente el cambio in-place anterior 72548b093ee3.

Flujo de trabajo recomendado para un árbol de kernel downstream:

root@kitploit:~
git cherry-pick a664bf3d603dc3bdcf9ae47cc21e0daec706d7a5
make olddefconfig
make -j"$(nproc)"
make modules_install
make install
reboot

Si no recompilas kernels tú mismo, instala el paquete de kernel del proveedor que contenga el backport y reinicia con él.

Mitigación Provisional

Si el parche se retrasa, deshabilita la ruta del módulo como medida temporal:

root@kitploit:~
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif-aead.conf
rmmod algif_aead 2>/dev/null

Esto es una mitigación, no un parche.

Notas

  • El PoC es intencionalmente pequeño y determinista.
  • El exploit es solo local, pero tiene un alto impacto en hosts compartidos, runners de CI, nodos Kubernetes y plataformas de contenedores porque la caché de páginas del host es compartida.
  • El bug del kernel es un error lógico, no una condición de carrera, por lo que la ruta del exploit es confiable una vez que el código vulnerable está presente.
Descargar herramienta
6.12.0-124.45.1.el10_1
SUSE 166.12.0-160000.9-default