
Copy-Fail-CVE-2026-31431-Lab — Actualizado!
Reproduje el LPE sin archivos CVE‑2026‑31431 ("Copy Fail") en Kali Linux, luego construí detecciones con auditd, Sigma y YARA para atrapar este exploit sigiloso del kernel que no deja huella en el disco.
Copy Fail (CVE-2026-31431) — Laboratorio de Reproducción y Detección de Exploit
Este repositorio documenta la reproducción de extremo a extremo, la ingeniería de detección y la respuesta a incidentes para CVE-2026-31431 ("Copy Fail"), una vulnerabilidad crítica de escalada de privilegios locales del kernel de Linux que afecta a los kernels 4.14 hasta 7.0-rc.
Hallazgos Clave
- ✅ Explotado exitosamente CVE-2026-31431 en Kali Linux 2026.1 (kernel 6.18.12+kali-amd64)
- ✅ Implementadas reglas de detección a nivel de syscall de auditd
- ✅ Creadas reglas Sigma y YARA para detección multiplataforma
- ✅ Desarrollado un plan de respuesta a incidentes completo
Por Qué Esto Importa
Copy Fail es un error lógico, no una corrupción de memoria. Es determinista, afecta prácticamente a todas las distribuciones de Linux lanzadas desde 2017, y es completamente sin archivos—el monitoreo tradicional de integridad de archivos (AIDE, Tripwire) no puede detectarlo. Una prueba de concepto funcional cabe en solo 732 bytes de Python.
Entorno de Laboratorio
| Componente | Detalles |
|---|---|
| Hypervisor | VirtualBox |
| VM objetivo | Kali Linux 2026.1 |
| Kernel | 6.18.12+kali-amd64 |
| PoC del exploit | theori-io/copy-fail-CVE-2026-31431 |
| Detección | auditd, Sigma, YARA |
Pasos de Reproducción
1. Verificar la Versión de Kali y el Kernel
El laboratorio comienza confirmando que el objetivo ejecuta un kernel vulnerable.
Detalles de la versión de Kali Linux 2026.1 y del kernel.
Salida de uname -r mostrando el kernel vulnerable 6.18.12+kali-amd64.
2. Verificar el Módulo Vulnerable
El exploit requiere el módulo del kernel algif_aead y la plantilla criptográfica authencesn.
Module Loaded
lsmod y modinfo confirman que algif_aead está disponible; /proc/crypto muestra la plantilla vulnerable authencesn.
3. Versión de Python
El PoC usa os.splice, que necesita Python 3.10+. Verificamos el intérprete.
Python Version Python 3.12 está instalado y listo.
4. Comprobador de Vulnerabilidad (No Destructivo)
Antes de ejecutar el exploit completo, un comprobador seguro confirma que el sistema es vulnerable.
El comprobador reporta "potencialmente vulnerable", allanando el camino para la explotación.
5. Crear Usuario sin Privilegios
Se crea una cuenta testuser sin privilegios para simular un atacante sin derechos especiales.
id muestra UID 1001, confirmando acceso no root.
6. Clonar y Ejecutar el Exploit
El PoC oficial de Theori se clona y ejecuta desde la cuenta sin privilegios.
Repositorio del exploit clonado exitosamente.
Exploit Execution
El exploit en Python sobrescribe el caché de páginas y detona el binario corrupto /usr/bin/su.
La salida de whoami e id prueba la escalada total a root.
7. Verificar la Naturaleza Sin Archivos (Sin Modificación en Disco)
El exploit solo corrompe el caché de páginas en memoria. El /usr/bin/su en disco conserva su suma de verificación original.
SHA256 Match
La sha256sum coincide con el hash del paquete original incluso después de la explotación, confirmando que no hay modificación en disco.
Ingeniería de Detección
Copy Fail no puede ser detectado por el monitoreo de integridad de archivos. En cambio, nos centramos en las primitivas a nivel de syscall que utiliza.
Reglas de auditd
Implementamos reglas personalizadas de auditd que se activan en:
- Creación de socket
AF_ALG(familia 38) - Uso de la syscall
splice() - Acceso de lectura a binarios setuid por procesos sin privilegios
Todas las reglas personalizadas están activas, verificadas con auditctl -l.
Después de ejecutar el exploit una segunda vez, vemos alertas para las syscalls exactas utilizadas:
ausearch muestra un evento de creación de socket AF_ALG desde el proceso testuser.
ausearch muestra un evento splice() del mismo PID, una fuerte correlación.
Regla Sigma
Una regla Sigma traduce los hallazgos de auditd a un formato SIEM neutral de proveedor.
Regla Sigma YAML que detecta la creación de sockets AF_ALG y llamadas a splice().
Regla YARA
Una regla YARA ayuda a identificar el código del exploit Copy Fail en disco.
Regla YARA que coincide con la cadena authencesn, constantes de socket y referencias a splice() encontradas en PoCs.
Resumen de Cobertura de Detección
| Capa | Lo que Ve | Estado |
|---|---|---|
| auditd | AF_ALG socket + splice syscalls | ✅ Desplegado |
| Sigma | Patrones de syscall vía SIEM | ✅ Regla lista |
| YARA | Código PoC en disco | ✅ Regla lista |
| FIM (AIDE/Tripwire) | Cambios en archivos | ❌ Ciego – no ocurre escritura en disco |
Plan de Respuesta a Incidentes
Un informe completo de respuesta a incidentes está disponible en reports/incident-copy-fail.md. Incluye:
- Resumen ejecutivo
- Indicadores de compromiso (IoCs)
- Mapeo MITRE ATT&CK (T1068, T1611)
- Pasos de contención y erradicación
- Lecciones aprendidas sobre ataques sin archivos
Mitigación
Mitigación inmediata (no requiere reinicio):
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf
sudo rmmod algif_aead