
Paquete de detección defensiva para CVE-2026-31431 (LPE de AF_ALG en el kernel de Linux). Reglas de Sigma, Falco, auditd, KQL y EQL mapeadas a MITRE ATT&CK T1068/T1611. Incluye lógica de detección diseñada para pipelines de telemetría de auditd, eBPF y EDR.
Una colección lista para producción de reglas de detección y guía de triaje para
CVE-2026-31431, una escalada de privilegios local del kernel de Linux en la
interfaz criptográfica algif_aead divulgada por Theori (Xint Code Research). La vulnerabilidad
explota una optimización AEAD in-place para permitir que un usuario sin privilegios
realice una escritura controlada en la caché de páginas de cualquier archivo legible. Este
repositorio proporciona reglas Sigma (incluida una regla de cadena de comportamiento), configuraciones
de auditd, una regla de Falco para contenedores, consultas de búsqueda KQL y Elastic EQL,
y un manual de triaje paso a paso para analistas. Sin código de explotación — contenido puramente defensivo
para analistas de SOC e ingenieros de detección.
Incluye lógica de detección diseñada para canalizaciones de telemetría de auditd, eBPF y EDR.
| Campo | Detalle |
|---|
| CVE | CVE-2026-31431 |
| Apodo | Copy Fail |
| Componente | Kernel de Linux algif_aead (interfaz criptográfica AF_ALG) |
| Tipo | Escalada de Privilegios Local (LPE) |
| CVSS | 7.8 |
| Primitiva | Escritura controlada determinista de 4 bytes en la caché de páginas de cualquier archivo legible |
| Ruta de escalada | Envenenar la caché de páginas de /etc/passwd → getpwnam() devuelve UID 0 → su otorga root |
| Riesgo en contenedores | Si el kernel del host no está parcheado y AF_ALG no está bloqueado por seccomp, esto es una primitiva de escape de contenedor (T1611) |
| Parche | Revertir algif_aead a operaciones AEAD out-of-place (upstream) |
| Etapa | Comportamiento observable | Detección |
|---|---|---|
| Inicial | Socket AF_ALG (familia 38) por no-root | Regla Sigma 1 · auditd afalg_socket · Falco |
| Configuración | bind() con cadena AEAD authencesn | Regla Sigma 2 (palabra clave) · auditd afalg_bind |
| Disparo de explotación | splice() al fd de AF_ALG | auditd splice_syscall · Falco/eBPF |
| Post-condición | recv() EBADMSG desde proceso sin privilegios | Correlación de cadena de syscalls · auditd |
| Impacto | Alerta FIM de /etc/passwd + pico de acceso | Monitoreo de integridad de archivos · /proc/<pid>/fd |
| Transición de privilegios | Ejecución de su después de actividad AF_ALG | Regla Sigma 3 · auditd execve · registros PAM |
Aplique la corrección upstream que revierte algif_aead a operaciones AEAD out-of-place.
Avisos de distribuciones:
Mitigación temporal (sistemas sin parchear):
Coloque install algif_aead /bin/false en /etc/modprobe.d/disable-algif-aead.conf,
o aplique un perfil seccomp que bloquee las llamadas socket con AF_ALG (familia 38).
Los principales consumidores legítimos de sockets AF_ALG son cryptsetup (LUKS), fscrypt
y algunos clientes VPN conscientes de la criptografía del kernel. En entornos de producción, estos procesos
se ejecutan casi exclusivamente como root, por lo que el filtro uid != 0 elimina la gran mayoría
de la actividad benigna. La cadena AEAD específica authencesn(hmac(sha256),cbc(aes)) no tiene
ningún uso legítimo conocido en producción y puede tratarse como crítica cuando se observe.
Este repositorio contiene únicamente contenido de detección defensiva. No se incluye código de explotación, scripts de prueba de concepto, offsets de syscalls o shellcode, ni se añadirá en el futuro.