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-CVE-2026-31431 — Exploit de escalada de privilegios local para CVE-2026-31431, una sobrescritura de page-cache en el kernel de Linux mediante AF_ALG + splice. Incluye PoC, script de detección BPFtrace y entorno de pruebas QEMU para investigación de seguridad autorizada. | Kitploit
Herramientas/GitHubGitHub/astounds/copy-fail-cve-2026-31431
Escalada de PrivilegiosFrameworks de ExploitsAnálisis de VulnerabilidadesExplotaciónAprendizaje y EducaciónExplotación de BinariosLabs y Práctica
GitHubastounds/copy-fail-cve-2026-31431

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

Exploit de escalada de privilegios local para CVE-2026-31431, una sobrescritura de page-cache en el kernel de Linux mediante AF_ALG + splice. Incluye PoC, script de detección BPFtrace y entorno de pruebas QEMU para investigación de seguridad autorizada.

Ver Repositorio
4hace 4 mesesAún no revisado

CVE-2026-31431 — Copy Fail

Escalada de privilegios local en el kernel de Linux mediante AF_ALG + sobrescritura de page-cache con splice

CVE CVSS License

Solo para investigación de seguridad autorizada, pruebas de penetración y fines educativos. No lo utilice contra sistemas que no le pertenezcan o para los que no tenga permiso explícito por escrito.

Informe técnico


Tabla de contenidos

  • Descripción
  • Detalles de la vulnerabilidad
  • Estructura del repositorio
  • Inicio rápido
  • Detección
  • Requisitos
  • Mitigación
  • Entorno de prueba (opcional)
  • Referencias
  • Licencia

Descripción

CVE-2026-31431 es una vulnerabilidad de escalada de privilegios local (LPE) en el kernel de Linux. Un usuario local sin privilegios puede obtener acceso root combinando la interfaz de socket AF_ALG con splice() para realizar una escritura autenticada directamente en una página de page-cache perteneciente a un binario setuid.

El exploit sobrescribe el binario su en la caché de páginas sin modificar el inodo en disco, evadiendo los mecanismos de integridad que dependen únicamente de los metadatos del archivo o de las sumas de verificación a nivel de bloque.


Detalles de la vulnerabilidad

Entornos afectados


Estructura del repositorio

root@kitploit:~
.
├── exploit.py    # PoC — sobrescritura de page-cache y escalada de privilegios
├── detect.bt     # Script de BPFtrace para detección en tiempo real
├── run-vm.sh     # Automatización del entorno de prueba QEMU (opcional)
├── PAYLOAD.md    # Análisis de codificación del payload (hex → zlib → ELF → shellcode)
└── LICENSE

Inicio rápido

Ejecute exploit.py como usuario local sin privilegios en cualquier sistema vulnerable — no se necesita sudo:

root@kitploit:~
python3 exploit.py

El script realiza los siguientes pasos:

  1. Verifica el soporte del kernel para AF_ALG (algif_aead) y localiza el binario su.
  2. Selecciona y descomprime el payload apropiado para la arquitectura.
  3. Abre el binario su como descriptor de archivo sin procesar y sobrescribe sus páginas de page-cache mediante AF_ALG + sendfile.
  4. Prueba la escalada de privilegios. Si tiene éxito, abre un shell root.

Arquitecturas compatibles:


Detección

Supervise los intentos de explotación en tiempo real con detect.bt. Requiere root:

root@kitploit:~
sudo bpftrace detect.bt
# o
doas bpftrace detect.bt

El script rastrea tres indicadores por PID mediante una máscara de bits en @suspect[pid]:

Se activa una alerta cuando los tres bits están establecidos (@suspect[pid] == 0x7) en el mismo PID.


Requisitos

exploit.py

  • Python 3.6+
  • Kernel de Linux con el módulo AF_ALG/algif_aead cargado
  • Cuenta de usuario local sin privilegios (root no es necesario)

detect.bt

  • bpftrace ≥ 0.12
  • Privilegios de root (necesarios para el rastreo BPF)
root@kitploit:~
# Ubuntu/Debian
sudo apt install bpftrace

# RHEL/CentOS/Fedora
sudo dnf install bpftrace

# Amazon Linux
sudo yum install bpftrace

# SUSE
sudo zypper install bpftrace

# Alpine
sudo apk add bpftrace

Mitigación

1. Parche (recomendado)

Actualice el paquete del kernel de su distribución a uno que incluya el commit de la línea principal a664bf3d603d, que revierte la optimización in-place de algif_aead de 2017 para que las páginas de page-cache ya no puedan terminar en la scatterlist de destino escribible. La mayoría de las distribuciones principales ya están distribuyendo la corrección.

2. Deshabilitar algif_aead (mientras se espera un parche)

blacklist se puede evadir con un modprobe algif_aead explícito. La directiva install .../bin/false anula por completo el comando de instalación, haciendo que cada intento de carga falle:

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

Qué rompe esto — casi nada

Los subsistemas en la fila "No" usan la API criptográfica del kernel directamente — nunca pasan por AF_ALG. El rendimiento vuelve a las bibliotecas criptográficas normales del espacio de usuario, que es lo que casi todo lo demás ya utiliza.

Para comprobar si algo en su sistema usa activamente AF_ALG antes de deshabilitarlo:

root@kitploit:~
lsof | grep AF_ALG
ss -xa | grep alg

3. Bloquear mediante seccomp (contenedores, sandboxes, CI)

Deniegue la creación de socket(AF_ALG, ...) para cargas de trabajo no confiables independientemente del estado del parche. Añada AF_ALG (familia 38) a su lista de denegación de seccomp, o use una política de AppArmor/SELinux que restrinja las llamadas socket para procesos sin privilegios.

4. Supervisar con detect.bt

Implemente el script de detección incluido en cualquier host que no pueda ser parcheado o bloqueado inmediatamente. Alertará sobre cualquier proceso que ejecute la primitiva de explotación completa de tres pasos.


Entorno de prueba (opcional)

run-vm.sh automatiza la creación de una máquina virtual QEMU de Ubuntu 24.04 para pruebas en un entorno controlado. exploit.py y detect.bt se ejecutan directamente en cualquier host vulnerable — QEMU no es necesario.

Requisitos del host

DependenciaNotas
qemu-system-x86_64 + KVMConsulte los comandos de instalación a continuación
wget o curlDescarga de la imagen de nube
cloud-image-utils

Instalar QEMU

root@kitploit:~
# Ubuntu/Debian
sudo apt install qemu-system-x86 cloud-image-utils wget

# Fedora/RHEL
sudo dnf install qemu-system-x86 wget

# Arch
sudo pacman -Sy qemu

# Alpine
sudo apk add qemu-system-x86 qemu-ui-gtk wget

Ejecutar

root@kitploit:~
sh run-vm.sh

Menú interactivo

root@kitploit:~
1. Iniciar/Crear VM
2. Conectar mediante SSH
3. Subir archivos a la VM  (exploit.py, detect.bt)
4. Ejecutar exploit dentro de la VM
5. Ejecutar detect.bt dentro de la VM
6. Comprobar estado de la VM
7. Detener VM
8. Limpiar archivos de la VM
0. Salir

Credenciales de la VM

CampoValor
Usuarioubuntu
Contraseñacve123
Puerto SSH2222

Referencias

  • Informe técnico — xint.io
  • Análisis de codificación del payload — desglose hex → zlib → ELF → shellcode
  • crypto/af_alg.c — código fuente del kernel
  • mm/splice.c — código fuente del kernel

Licencia

Este proyecto está licenciado bajo la GNU General Public License v3.0 o posterior. Consulte LICENSE para el texto completo.

Aviso legal: Este repositorio se proporciona únicamente para investigación de seguridad autorizada, pruebas de penetración y fines educativos. Los autores no aceptan ninguna responsabilidad por el mal uso o los daños causados por este software.

Descargar herramienta
CampoValor
ID de CVECVE-2026-31431
TipoEscalada de privilegios local (LPE)
Puntuación CVSS v3.17.8 Alta — AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H (fuente: kernel.org)
Subsistemas del kernelcrypto/af_alg.c, mm/splice.c
Vector de ataqueLocal — se requiere una cuenta de usuario sin privilegios
Causa raízalgif_aead acepta sendfile() sobre un socket AEAD sin imponer semántica de copy-on-write en la página de page-cache mapeada antes de que splice() complete la transferencia
DistribuciónVersión del kernelArquitectura
Ubuntu 24.04 LTS6.17.0-1007-awsx86_64
Amazon Linux 20236.18.8-9.213.amzn2023x86_64
RHEL 10.16.12.0-124.45.1.el10_1x86_64
SUSE 166.12.0-160000.9-defaultx86_64
Raspberry Pi OS (Pi 5)6.12.75+rpt-rpi-2712aarch64
ArquitecturaVariantes
x86_64—
aarch64—
riscv64—
ppc64le—
armarmv5l, armv6l, armv7l
x86 32 bitsi386, i486, i586, i686
MIPS 64 bitsmips64, mips64el
LoongArchloong64, loongarch64
s390x—
BitSyscallIndicador
0x1socket(AF_ALG, SOCK_SEQPACKET)Socket AF_ALG creado
0x2setsockopt(SOL_ALG, ...)Operación criptográfica configurada
0x4sendmsg(MSG_MORE) + splice()Intento de sobrescritura de page-cache
¿Afectado?Subsistema/Caso de uso
Nodm-crypt/LUKS, kTLS, IPsec/XFRM, TLS en el kernel
NoOpenSSL, GnuTLS, compilaciones predeterminadas de NSS
NoSSH, criptografía del keyring del kernel
QuizásOpenSSL con el motor afalg habilitado explícitamente
QuizásRutas de descarga criptográfica integradas o aplicaciones que enlazan sockets aead/skcipher/hash directamente
Generación de la imagen semilla (Docker puede sustituir en hosts que no sean Debian)