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-CopyFail — Exploit de escalada de privilegios local para CVE-2026-31431 (Copy Fail) dirigido a la corrupción de la caché de páginas del kernel de Linux a través del módulo AF_ALG AEAD. Incluye PoC, reglas de detección, configuración de laboratorio y scripts de mitigación para pruebas de seguridad autorizadas. | Kitploit
Herramientas/GitHubGitHub/0xfuffm3/cve-2026-31431-copyfail
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónPruebas de PenetraciónAprendizaje y EducaciónEscape de ContenedoresExplotación de BinariosLabs y Práctica

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 →

Acerca de

GitHub
0xfuffm3/cve-2026-31431-copyfail

CVE-2026-31431-CopyFail

Ver Repositorio
hace 3 mesesAún no revisado

Exploit de escalada de privilegios local para CVE-2026-31431 (Copy Fail) dirigido a la corrupción de la caché de páginas del kernel de Linux a través del módulo AF_ALG AEAD. Incluye PoC, reglas de detección, configuración de laboratorio y scripts de mitigación para pruebas de seguridad autorizadas.

Compartir
root@kitploit:~
                     ██████╗ ██████╗ ██████╗ ██╗   ██╗    ███████╗ █████╗ ██╗██╗
                    ██╔════╝██╔═══██╗██╔══██╗╚██╗ ██╔╝    ██╔════╝██╔══██╗██║██║
                    ██║     ██║   ██║██████╔╝ ╚████╔╝     █████╗  ███████║██║██║
                    ██║     ██║   ██║██╔═══╝   ╚██╔╝      ██╔══╝  ██╔══██║██║██║
                         ╚██████╗╚██████╔╝██║        ██║       ██║     ██║  ██║██║███████╗
                          ╚═════╝ ╚═════╝ ╚═╝        ╚═╝       ╚═╝     ╚═╝  ╚═╝╚═╝╚══════╝

CVE-2026-31431 — "Copy Fail"

Escalada Local de Privilegios en el Kernel de Linux mediante Corrupción del Caché de Páginas en algif_aead


CVE CVSS Kernel-yellow?style=for-the-badge&logo=linux&logoColor=black) License Status


⚠️ SOLO PARA USO AUTORIZADO — Este repositorio está estrictamente destinado a probadores de penetración, investigadores de seguridad y defensores que operan bajo autorización legal. El uso indebido es un delito penal.


📖 Tabla de Contenidos


🔍 ¿Qué es Copy Fail?

Copy Fail es una vulnerabilidad de escalada local de privilegios (LPE) divulgada el 29 de abril de 2026, que afecta prácticamente a todas las principales distribuciones de Linux que ejecutan kernels desde 2017.

root@kitploit:~
Usuario sin privilegios  ──►  AF_ALG + splice()  ──►  Escritura de 4 bytes en el caché de páginas  ──►  ROOT

Datos Clave de un Vistazo

Por Qué Esto es Peligroso

  • 🕵️ Sigiloso — La modificación solo vive en el caché de páginas; el archivo en disco nunca se modifica. El análisis forense estándar de disco no lo detectará.
  • ⚡ Confiable — Fallo lógico determinista, no una condición de carrera. La explotación es consistente en diferentes entornos.
  • 🌐 Universal — Afecta a Ubuntu, RHEL, Amazon Linux, SUSE, Debian — todas las distribuciones principales desde 2017.
  • ☸️ Impacto en Cloud/K8s — Puede facilitar el escape de contenedores en cargas de trabajo de Kubernetes y ejecutores de CI/CD.
  • 🤖 Descubierto por IA — Encontrado por el sistema de IA de Xint Code con aproximadamente 1 hora de escaneo y un solo prompt de operador.

🔬 Análisis Técnico Profundo

Causa Raíz

La vulnerabilidad proviene de una optimización in situ defectuosa introducida en 2017 (commit 72548b093ee3) dentro del módulo algif_aead de la API criptográfica de espacio de usuario del kernel de Linux (AF_ALG).

root@kitploit:~
AF_ALG (API criptográfica de espacio de usuario)
└── módulo algif_aead
    └── plantilla authencesn  ◄── VULNERABLE
        └── optimización in situ (2017)
            └── req->src == req->dst  ◄── páginas de splice() encadenadas en una lista de dispersión de dst escribible

Flujo del Ataque

root@kitploit:~
Paso 1: Abrir socket AF_ALG AEAD
        socket(AF_ALG, SOCK_SEQPACKET, 0)

Paso 2: Enviar páginas de splice() que referencian el archivo objetivo
        (páginas del caché de páginas de un binario privilegiado, p.ej. /usr/bin/sudo)

Paso 3: Activar escritura temporal de authencesn
        authencesn usa el buffer dst como área de trabajo →
        escribe 4 bytes controlados MÁS ALLÁ de la región de salida legítima

Paso 4: La entrada del caché de páginas para el archivo objetivo ahora está corrupta
        (archivo en disco intacto — solo se modificó la copia en memoria)

Paso 5: Ejecutar el binario modificado → ROOT

¿Por Qué el Caché de Páginas?

El caché de páginas del kernel de Linux respalda las copias en memoria de los archivos. Cuando se lee un archivo, sus páginas se almacenan en caché. La llamada al sistema splice() puede referenciar directamente estas páginas cacheadas. Al alimentar páginas del caché de páginas en la lista de dispersión de AF_ALG AEAD, la escritura temporal de authencesn cae dentro de esas páginas cacheadas, parcheando efectivamente la copia en memoria de cualquier archivo legible — incluyendo binarios privilegiados como sudo, pkexec o passwd.

La Solución

El parche ascendente revierte la optimización defectuosa de 2017:

root@kitploit:~
# Corregido en el commit: a664bf3d603d
git show a664bf3d603d

🖥️ Sistemas Afectados

Versiones del Kernel de Linux

Matriz de Distribuciones


📁 Estructura del Repositorio

root@kitploit:~
CVE-2026-31431-CopyFail/
│
├── 📄 README.md                          ← Usted está aquí
├── 📄 LICENSE                            ← Licencia de investigación/educativa
├── 📄 DISCLAIMER.md                      ← Política de uso legal y ético
├── 📄 CHANGELOG.md                       ← Historial de versiones
│
├── 📂 docs/
│   ├── vulnerability-analysis.md         ← Análisis profundo: causa raíz y mecánica
│   ├── exploitation-walkthrough.md       ← Metodología paso a paso
│   ├── affected-kernels.md               ← Matriz completa de versiones de kernel/distribuciones
│   ├── detection.md                      ← Cobertura de Defender, Tenable, Wazuh
│   └── references.md                     ← Todos los CVEs, blogs, avisos
│
├── 📂 exploit/
│   ├── README.md                         ← Uso, requisitos previos, distribuciones probadas
│   ├── copyfail.py                       ← PoC de referencia (educativo)
│   ├── trigger.c                         ← Disparador C de AF_ALG + splice()
│   └── variants/
│       ├── ubuntu.py                     ← Variante específica para Ubuntu
│       ├── rhel.py                       ← Variante para RHEL/CentOS
│       └── amazon_linux.py              ← Variante para Amazon Linux
│
├── 📂 detection/
│   ├── yara/
│   │   └── copyfail.yar                  ← Regla YARA para artefactos del exploit
│   ├── sigma/
│   │   └── copyfail_lpe.yml              ← Regla Sigma para SIEM/SOC
│   └── scripts/
│       ├── check_vulnerable.sh           ← Verificación rápida de vulnerabilidad del kernel
│       └── detect_algif_aead.sh         ← Verificar si el módulo está cargado/activo
│
├── 📂 mitigation/
│   ├── README.md                         ← Resumen de mitigación
│   ├── disable_algif_aead.sh             ← Deshabilitar el módulo del kernel afectado
│   ├── patch-notes.md                    ← Detalles del parche ascendente
│   └── kubernetes-hardening.md          ← Endurecimiento de K8s / contenedores
│
├── 📂 lab/
│   ├── Vagrantfile                       ← MV vulnerable reproducible
│   ├── setup.sh                          ← Script de arranque del laboratorio
│   └── docker/
│       └── Dockerfile                    ← Contenedor Ubuntu vulnerable
│
├── 📂 reports/
│   ├── pentest-report-template.md        ← Plantilla de informe lista para el cliente
│   └── sample-finding.md                ← Ejemplo de redacción de hallazgo
│
└── 📂 assets/
    ├── demo.gif                          ← (Opcional) demostración en terminal
    └── diagrams/
        └── page-cache-write.png         ← Diagrama del flujo del ataque

🧪 Configuración del Laboratorio

Siempre pruebe en un entorno aislado y autorizado. Nunca ejecute exploits en sistemas de producción.

Opción A — Máquina Virtual con Vagrant (Recomendada)

root@kitploit:~
# Clonar el repositorio
git clone https://github.com/0xFuffM3/CVE-2026-31431-CopyFail.git
cd CVE-2026-31431-CopyFail

# Iniciar la MV de laboratorio vulnerable
cd lab/
vagrant up

# SSH al laboratorio
vagrant ssh

# Verificar la versión del kernel (debería ser vulnerable)
uname -r

Opción B — Contenedor Docker

root@kitploit:~
cd lab/docker/

# Construir la imagen del contenedor vulnerable
docker build -t copyfail-lab .

# Ejecutar con los privilegios necesarios para la interacción con el kernel
docker run --rm -it --privileged copyfail-lab /bin/bash

Verificar Si Su Sistema Es Vulnerable

root@kitploit:~
# Ejecutar el script de verificación rápida
chmod +x detection/scripts/check_vulnerable.sh
./detection/scripts/check_vulnerable.sh

Salida esperada en un sistema vulnerable:

root@kitploit:~
[!] Versión del kernel: 5.15.0-91-generic
[!] Módulo algif_aead: CARGADO
[✗] El sistema parece VULNERABLE a CVE-2026-31431 (Copy Fail)
[*] Acción recomendada: Aplicar actualización del kernel o deshabilitar algif_aead

Salida esperada en un sistema parcheado:

root@kitploit:~
[✓] Versión del kernel: 6.1.132
[✓] El sistema parece PARCHEADO contra CVE-2026-31431 (Copy Fail)

💥 Uso del Exploit

Requiere: Acceso local como usuario sin privilegios en un sistema vulnerable.

Requisitos Previos

root@kitploit:~
# Python 3.6+
python3 --version

# Módulos del kernel requeridos presentes
lsmod | grep algif_aead

# Verificar que el binario objetivo sea legible
ls -la /usr/bin/sudo

Ejecutar el PoC

root@kitploit:~
cd exploit/

# Verificar el nivel de privilegio actual
id
# uid=1000(usuario) gid=1000(usuario) groups=1000(usuario)

# Ejecutar PoC de Copy Fail
python3 copyfail.py

# Verificar la escalada de privilegios
id
# uid=0(root) gid=0(root) groups=0(root)

Flujo de Trabajo de Pentest

root@kitploit:~
1. Enumerar la versión del kernel
   └─► uname -r / cat /proc/version

2. Verificar si algif_aead está cargado
   └─► lsmod | grep algif_aead

3. Confirmar punto de apoyo con bajos privilegios
   └─► id / whoami

4. Ejecutar PoC de Copy Fail
   └─► python3 exploit/copyfail.py

5. Verificar acceso root
   └─► id && cat /etc/shadow

6. Documentar evidencia
   └─► Captura de pantalla + registrar versión del kernel, distribución, hash del exploit

7. Aplicar mitigación (después de la prueba)
   └─► sudo bash mitigation/disable_algif_aead.sh

8. Incluir en el informe de pentest
   └─► Usar reports/pentest-report-template.md

🔎 Detección

Regla YARA

root@kitploit:~
// detection/yara/copyfail.yar
rule CopyFail_CVE_2026_31431 {
    meta:
        description = "Detecta artefactos del exploit Copy Fail (CVE-2026-31431)"
        author      = "0xFuffM3"
        date        = "2026-04-30"
        reference   = "https://copy.fail"
    strings:
        $py1 = "algif_aead" ascii
        $py2 = "AF_ALG" ascii
        $py3 = "splice" ascii
        $py4 = "page_cache" ascii
        $py5 = "authencesn" ascii
    condition:
        3 of them
}

Ejecutar escaneo YARA:

root@kitploit:~
yara detection/yara/copyfail.yar /tmp/ -r

Regla Sigma (SIEM)

root@kitploit:~
# detection/sigma/copyfail_lpe.yml
title: Ejecución de Exploit LPE Copy Fail (CVE-2026-31431)
status: stable
logsource:
    category: process_creation
    product: linux
detection:
    selection:
        CommandLine|contains:
            - 'AF_ALG'
            - 'algif_aead'
            - 'authencesn'
    condition: selection
falsepositives:
    - Pruebas legítimas de API criptográfica
level: high

Script de Detección Rápida

root@kitploit:~
chmod +x detection/scripts/detect_algif_aead.sh
./detection/scripts/detect_algif_aead.sh

Cobertura de Herramientas de Seguridad


🛡️ Mitigación

Opción 1 — Aplicar el Parche del Kernel (Recomendada)

root@kitploit:~
# Ubuntu / Debian
sudo apt-get update && sudo apt-get upgrade linux-image-generic

# RHEL / CentOS
sudo yum update kernel

# Amazon Linux
sudo yum update kernel

# Después de la actualización, reiniciar
sudo reboot

Opción 2 — Deshabilitar el Módulo algif_aead (Temporal)

root@kitploit:~
# Ejecutar el script de mitigación
chmod +x mitigation/disable_algif_aead.sh
sudo bash mitigation/disable_algif_aead.sh

Lo que hace el script:

root@kitploit:~
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
rmmod algif_aead 2>/dev/null || echo "[*] Módulo no cargado actualmente"
echo "[✓] algif_aead deshabilitado. Reiniciar para confirmar persistencia."

Opción 3 — Endurecimiento de Kubernetes

Consulte mitigation/kubernetes-hardening.md para:

  • Restringir la creación de sockets AF_ALG en políticas de seguridad de pods
  • Perfil Seccomp para bloquear la llamada al sistema socket(AF_ALG, ...)
  • Parche prioritario para nodos de Kubernetes y ejecutores de CI/CD

📝 Informes de Pentest

Una plantilla de informe lista para el cliente está disponible en reports/pentest-report-template.md.

Resumen de Hallazgo de Muestra

root@kitploit:~
Hallazgo:    Escalada Local de Privilegios mediante Copy Fail (CVE-2026-31431)
Severidad:   ALTA (CVSS 7.8)
Host:       10.10.10.55 (ubuntu-prod-01)
Kernel:     5.15.0-91-generic

Evidencia:
  - Shell sin privilegios (uid=1000) escalado a root (uid=0)
  - Módulo del kernel algif_aead confirmado como cargado
  - Sin artefactos en disco — solo caché de páginas

Recomendación:
  1. Aplicar el parche del kernel del proveedor inmediatamente
  2. Temporal: deshabilitar el módulo algif_aead
  3. Revisar nodos de Kubernetes y ejecutores de CI/CD

⚖️ Legal y Ética

Lea antes de usar cualquier cosa en este repositorio.

Este repositorio se publica únicamente con fines de investigación de seguridad legítima, pruebas de penetración autorizadas y seguridad defensiva.

  • ✅ Permitido: Pruebas en sistemas que posee o para los que tiene autorización explícita por escrito
  • ✅ Permitido: Investigación de seguridad en entornos de laboratorio aislados
  • ✅ Permitido: Uso defensivo — detección, parcheo, endurecimiento
  • ❌ Prohibido: Pruebas en sistemas sin autorización por escrito
  • ❌ Prohibido: Despliegue de exploits contra sistemas de producción
  • ❌ Prohibido: Cualquier uso que viole leyes locales, nacionales o internacionales

El uso no autorizado de este material puede violar la Ley de Abuso y Fraude Informático (CFAA), la Directiva de la UE 2013/40/UE, la Ley de TI de la India de 2000 y leyes equivalentes en su jurisdicción.

Los autores no asumen ninguna responsabilidad por el uso indebido. Consulte DISCLAIMER.md para el aviso legal completo.


📚 Referencias


🤝 Contribuciones

Investigadores de seguridad son bienvenidos a contribuir:

  1. Hacer un fork del repositorio
  2. Crear una rama de funcionalidad: git checkout -b feat/tu-contribucion
  3. Confirmar sus cambios: git commit -m "Añadir: regla de detección para X"
  4. Hacer push y abrir una Pull Request

Por favor, siga las normas de divulgación responsable. No incluya código de exploit armado y listo para producción dirigido a sistemas parcheados.


Hecho para la comunidad de seguridad — úselo con responsabilidad.

Seguir

Descargar herramienta
#SecciónDescripción
1¿Qué es Copy Fail?Resumen de la vulnerabilidad
2Análisis Técnico ProfundoAnálisis de la causa raíz
3Sistemas AfectadosMatriz de distribuciones y kernels
4Estructura del RepositorioOrganización de archivos
5Configuración del LaboratorioReproducir de forma segura
6Uso del ExploitFlujo de trabajo de pentest
7DetecciónYARA, Sigma, scripts
8MitigaciónParche y endurecimiento
9Informes de PentestPlantillas de informes
10Legal y ÉticaDescargo de responsabilidad
11ReferenciasCVEs, avisos, blogs
PropiedadDetalle
ID CVECVE-2026-31431
ApodoCopy Fail
CVSS v3.17.8 (ALTA)
Vector de AtaqueLocal
Privilegios RequeridosBajos (cualquier usuario sin privilegios)
Interacción del UsuarioNinguna
DescubridorXint Code (Theori)
Divulgado29 de abril de 2026
Tamaño del Exploit732 bytes (PoC en Python)
Estado del Parche✅ Disponible — revertir el commit a664bf3d603d
Rama del Kernel¿Afectado?Versión Corregida
4.9.x (LTS)✅ Sí4.9.340+
5.4.x (LTS)✅ Sí5.4.295+
5.10.x (LTS)✅ Sí5.10.239+
5.15.x (LTS)✅ Sí5.15.185+
6.1.x (LTS)✅ Sí6.1.132+
6.6.x (LTS)✅ Sí6.6.83+
6.12.x (LTS)✅ Sí6.12.19+
< 4.9 (pre-2017)❌ NoN/A — optimización no presente
DistribuciónVersiones Afectadas¿Parcheado?Aviso
Ubuntu< 26.04 (todas las versiones)✅ ParcheadoUSN
Ubuntu 26.04 (Resolute)❌ No afectado——
RHEL / CentOS7, 8, 9✅ ParcheadoRHSA-2026
Amazon Linux2, 2023✅ ParcheadoALAS
SUSE / openSUSETodas afectadas✅ ParcheadoSUSE-SU
DebianBullseye, Bookworm✅ ParcheadoDSA
CloudLinux8, 9✅ ParcheadoAviso
HerramientaSoporte de Detección
Microsoft Defender (MDVM)✅ Sí
Tenable Nessus✅ Sí
Qualys✅ Sí
Wazuh✅ Mediante regla Sigma personalizada
Palo Alto Cortex XDR✅ Sí
CrowdStrike Falcon✅ Sí
FuenteEnlace
Divulgación Original (Xint/Theori)copy.fail
Artículo Técnico de Xint Codexint.io/blog/copy-fail
Entrada NVDnvd.nist.gov
Blog de Seguridad de Microsoftmicrosoft.com/security/blog
Aviso de Ubuntuubuntu.com/blog
Aviso de CERT-EUcert.europa.eu
Preguntas Frecuentes de Tenabletenable.com/blog
Palo Alto Unit 42unit42.paloaltonetworks.com
Aviso de CloudLinuxblog.cloudlinux.com
Análisis de Bugcrowdbugcrowd.com/blog
Parche del Kernel de Linuxkernel.org — commit a664bf3d603d