
# Libro de jugadas de IR defensivo y paquete de detección para CVE-2026-31431 (Copy Fail) LPE del kernel de Linux, que incluye consultas de búsqueda para Sigma, auditd, Falco, Wazuh, YARA, eBPF y SIEM.
Playbook de IR listo para producción, reglas de detección y guía de triaje para SOC para CVE-2026-31431 — una escalada de privilegios local del kernel de Linux en la interfaz criptográfica algif_aead. Incluye un playbook HTML interactivo, reglas Sigma, configuraciones de auditd, reglas de contenedor Falco, reglas de correlación Wazuh, firmas YARA, monitores eBPF en tiempo real y consultas de búsqueda SIEM en Splunk, Sentinel KQL, Elastic EQL y QRadar AQL.
Sin código de explotación — contenido puramente defensivo para analistas de SOC e ingenieros de detección.
Autor: Ashok Reddy
La lista negra de modprobe ampliamente recomendada no funciona en RHEL, CentOS, AlmaLinux, Rocky Linux o CloudLinux. El módulo algif_aead está compilado directamente en el kernel (CONFIG_CRYPTO_USER_API_AEAD=y). Los comandos se ejecutan sin errores pero dejan el sistema completamente desprotegido.
Mitigación correcta para la familia RHEL:
grubby --update-kernel=ALL --args="initcall_blacklist=algif_aead_init"
reboot
# Verificar:
cat /proc/cmdline | grep initcall_blacklist
Consulte mitigate/ para scripts específicos por plataforma.
├── README.md # Este archivo
├── LICENSE # Licencia MIT
├── playbook/
│ ├── index.html # Playbook de IR interactivo (13 pestañas)
│ └── triage_playbook.md # Guía de triaje para analistas de SOC
├── sigma/
│ ├── afalg_socket_creation.yml # Socket AF_ALG por no-root
│ ├── afalg_bind_aead_string.yml # Cadena de algoritmo authencesn
│ └── afalg_splice_chain.yml # Regla de cadena de comportamiento
├── auditd/
│ └── cve-2026-31431.rules # Conjunto completo de reglas auditd
├── falco/
│ └── afalg_container.yml # Detección AF_ALG en contenedores
├── wazuh/
│ └── cve-2026-31431.xml # Reglas de correlación Wazuh
├── yara/
│ └── copyfail_artifacts.yar # Detección de artefactos de archivos PoC
├── ebpf/
│ └── copyfail_monitor.bt # Monitor en tiempo real bpftrace
├── queries/
│ ├── splunk.spl # Consultas de búsqueda SPL de Splunk
│ ├── defender_sentinel.kql # Consultas KQL de Sentinel/MDE
│ ├── elastic.eql # Secuencias EQL de Elastic
│ └── qradar.aql # Consultas AQL de QRadar
├── mitigate/
│ ├── mitigate_debian.sh # Mitigación Debian/Ubuntu
│ └── mitigate_rhel.sh # Familia RHEL (método grubby)
└── check/
└── is_vulnerable.sh # Verificación segura de vulnerabilidad
El playbook/index.html es un playbook interactivo completo con 13 pestañas:
En vivo: https://ashok523.github.io/cve-2026-31431/
# 1. Verificar si es vulnerable
sudo bash check/is_vulnerable.sh
# 2. Aplicar mitigación
sudo bash mitigate/mitigate_rhel.sh # Familia RHEL
sudo bash mitigate/mitigate_debian.sh # Debian/Ubuntu
# 3. Implementar reglas auditd
sudo cp auditd/cve-2026-31431.rules /etc/audit/rules.d/
sudo augenrules --load
# 4. Implementar reglas Wazuh
sudo cp wazuh/cve-2026-31431.xml /var/ossec/etc/rules/local_rules.xml
sudo systemctl restart wazuh-manager
# 5. Implementar regla Falco (Kubernetes)
sudo cp falco/afalg_container.yml /etc/falco/rules.d/
sudo systemctl restart falco
# 6. Ejecutar monitor eBPF (tiempo real)
sudo bpftrace ebpf/copyfail_monitor.bt
# 7. Escanear archivos PoC
yara yara/copyfail_artifacts.yar /tmp/ /dev/shm/ /var/tmp/
Este repositorio contiene solo contenido de detección defensiva. No se incluye ni se añadirá código de explotación, scripts de prueba de concepto, offsets de syscalls o shellcode.
| Campo | Detalle |
|---|
| CVE | CVE-2026-31431 |
| Apodo | Copy Fail |
| Componente | algif_aead del kernel de Linux (interfaz criptográfica AF_ALG) |
| Tipo | Escalada de Privilegios Local (LPE) |
| CVSS | 7.8 (ALTO) |
| Primitiva | Escritura determinista de 4 bytes en la caché de páginas de cualquier archivo legible |
| Tamaño del exploit | 732 bytes en Python (solo biblioteca estándar, Python 3.10+) |
| Fiabilidad | 100% — sin condición de carrera, sin reintentos |
| Escrituras en disco | Cero — solo caché de páginas, invisible para herramientas FIM |
| Alcance | Todas las principales distribuciones de Linux desde 2017 (kernel 4.13–6.18) |
| Riesgo en contenedores | Primitiva de escape de contenedor si el kernel del host no está parcheado (T1611) |
| Estado del PoC | Público desde el 29 de abril de 2026 |
| Parche | Commit a664bf3d603d — revierte operaciones AEAD in-place |
| Descubierto por | Taeyang Lee (Theori) · Cadena de explotación por Xint Code (asistida por IA) |
| Pestaña | Contenido |
|---|
| Overview | Grafo de ataque, cadena de explotación, estadísticas |
| Phases 1–6 | Ciclo de vida completo de IR con listas de verificación |
| Intel Feed | Metodología de detección SOC, VAPT vs SOC, herramientas comunitarias, estado del parche |
| IOCs | Indicadores de syscall, proceso, sistema de archivos y comportamiento |
| MITRE ATT&CK | Mapeo de técnicas con señales de detección |
| Detection Use Cases | 8 casos de uso basados en TTP (UC-CF-001 a UC-CF-008) |
| SIEM Hunting | 18 consultas en todas las plataformas |
| AI Detection | Capacidades y limitaciones de UEBA/ML |
| Etapa | Detección | Herramienta |
|---|
| Socket AF_ALG por no-root | Sigma · auditd · Falco · eBPF | Señal primaria |
| Cadena splice() (mismo PID, 10s) | auditd · eBPF | FP casi nulo |
| Cadena AEAD authencesn | Sigma · auditd | Crítico si se observa |
| uid→euid=0 sin autenticación | auditd · Splunk · KQL | LPE confirmado |
| su sin nombre de usuario | auth.log (señal Wiz) | Post-explotación |
| PoC en el sistema de archivos | YARA | Detección de preparación |
| Escape de contenedor | Falco con contexto K8s | T1611 |
| Persistencia post-root | auditd FIM · Wazuh | Claves SSH, SUID, cron |
| Enfoque | Volumen | Confianza |
|---|
| ❌ Alertar sobre todo splice() | ~10,000/hora | Muy Baja |
| ⚠️ Alertar solo sobre socket(AF_ALG) | ~5–50/día | Media |
| ✅ AF_ALG + splice mismo PID/10s | ~0–2/día | Muy Alta |
| ✅ AF_ALG + splice + su / 60s | ~0/día | Crítica |
| Distribución | Estado | Comando |
|---|
| Ubuntu | ✅ Parcheado | apt update && apt install linux-image-generic |
| AlmaLinux | ✅ Parcheado | dnf clean metadata && dnf upgrade |
| CloudLinux | ✅ Parcheado + livepatch | kcarectl --update |
| Debian | ✅ En seguimiento | apt update && apt upgrade |
| Mainline | ✅ Corregido 7.0-rc7 | Commit a664bf3d603d |
| RHEL | ⏳ Pendiente | Errata aún no publicada |
| Amazon Linux | 🔄 En seguimiento | yum update kernel |