Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-31431-Copy-Fail — Análisis exhaustivo de CVE-2026-31431, una vulnerabilidad de escalada de privilegios locales (LPE) en el kernel de Linux, que incluye metodología de explotación, scripts de detección, reglas YARA, configuraciones de auditd y Falco, y orientación para la remediación. | Kitploit
Herramientas/GitHubGitHub/rippsec/cve-2026-31431-copy-fail
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónAprendizaje y EducaciónRed TeamingRespuesta a Incidentes
GitHubrippsec/cve-2026-31431-copy-fail

CVE-2026-31431-Copy-Fail

Análisis exhaustivo de CVE-2026-31431, una vulnerabilidad de escalada de privilegios locales (LPE) en el kernel de Linux, que incluye metodología de explotación, scripts de detección, reglas YARA, configuraciones de auditd y Falco, y orientación para la remediación.

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
Ver Repositorio
124hace 5 mesesAún no revisado

CVE-2026-31431 — "Copy Fail": Escalada de Privilegios Local en el Kernel de Linux algif_aead

CISA KEV | CVSS 7.8 ALTO | Afecta a kernels de Linux 4.14 – principios de 2026 (~9 años)


Tabla de Contenidos

  1. Resumen Ejecutivo
  2. Evaluación de Riesgo
  3. Análisis Técnico Detallado
  4. Metodología de Ataque — Red Team
  5. Detección y Respuesta a Incidentes — Blue Team
  6. Parcheo y Remediación
  7. Entorno de Laboratorio
  8. Referencias

1. Resumen Ejecutivo

CVE-2026-31431, apodado "Copy Fail", es una vulnerabilidad de escalada de privilegios local (LPE) de alta severidad en el subsistema criptográfico del kernel de Linux. Un usuario local con privilegios bajos puede escalar a root en segundos en cualquier sistema sin parchear.

AtributoValor
CVECVE-2026-31431
ApodoCopy Fail
CVSS v3.17.8 ALTO
Vector de AtaqueLocal
Privilegios RequeridosBajos
Interacción del UsuarioNinguna
Componentecrypto/algif_aead.c — plantilla authencesn
Introducido2017 (commit 72548b093ee3)
Divulgado2026
Años en Silencio~9 años
CISA KEVSí
PoC PúblicoSí (script Python independiente de 732 bytes)

Impacto Empresarial

  • Acceso root en cualquier servidor Linux, VM, instancia en la nube o host de contenedores sin parchear
  • Escape de contenedores desde pods de Kubernetes — la caché de páginas se comparte con el kernel del host
  • Cero huella en disco — la explotación no deja cambios en archivos, ni páginas sucias, ni rastro de auditoría mediante herramientas estándar de integridad de archivos (Tripwire, AIDE)
  • Afecta a Red Hat, Ubuntu, Debian, SUSE, Amazon Linux y prácticamente todas las distribuciones principales que ejecutan kernels desde 2017 en adelante

Acción Inmediata Recomendada

  1. Mitigación temporal (implementar ahora, sin necesidad de reinicio si el módulo no está cargado): ```bash echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf sudo rmmod algif_aead 2>/dev/null || true
  2. Solución permanente: Actualice los paquetes del kernel mediante el gestor de paquetes de su distribución y reinicie.
  3. Verificación: Ejecute detection/check_vulnerable.sh antes y después de la remediación.

2. Evaluación de Riesgos

Cadena de Vector CVSS 3.1```

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

| Métrica | Valor | Justificación |
|--------|-------|-----------|
| Vector de ataque | **Local** | Requiere acceso a shell (SSH, exec de contenedor, físico) |
| Complejidad del ataque | **Baja** | Fiable, totalmente automatizado — no requiere condición de carrera |
| Privilegios requeridos | **Bajos** | Cualquier cuenta de usuario sin privilegios |
| Interacción del usuario | **Ninguna** | No se necesita interacción de la víctima |
| Confidencialidad | **Alta** | Compromiso total del sistema |
| Integridad | **Alta** | Compromiso total del sistema |
| Disponibilidad | **Alta** | Compromiso total del sistema |

### Panorama de amenazas

| Factor | Evaluación |
|--------|-----------|
| Disponibilidad de PoC | Pública, armada, Python independiente de 732 bytes |
| Fiabilidad del exploit | Alta — funciona en las distros probadas sin modificación |
| Dificultad de detección | Alta — sin escrituras en disco, sin páginas sucias |
| Habilidad requerida del atacante | Baja — script kiddie con PoC público |
| CISA KEV | Añadido en 2026 — monitorizado activamente |
| Microsoft Defender | Marcado como bajo investigación activa |

### Entornos afectados

| Entorno | Riesgo |
|-------------|------|
| Servidores Linux en bare-metal | Crítico |
| VMs Linux (nube o locales) | Crítico |
| Nodos Kubernetes | Crítico (también permite escape de contenedor) |
| Hosts Docker | Crítico |
| Hosting compartido / multiinquilino | Crítico |
| WSL2 / Linux en Windows | Evaluar según la versión del kernel |

---

## 3. Inmersión técnica profunda

### 3.1 Antecedentes: AF_ALG y AEAD

El kernel de Linux expone operaciones criptográficas al espacio de usuario mediante **sockets AF_ALG** (`AF_ALG = 38`). Esta interfaz (`algif_aead`) permite que aplicaciones sin privilegios invoquen aceleradores criptográficos de hardware del kernel sin necesidad de código en modo kernel.

Los algoritmos **AEAD** (Autenticación Encriptada con Datos Asociados) como AES-GCM y ChaCha20-Poly1305 se usan ampliamente para TLS, cifrado de disco y protocolos VPN. La plantilla vulnerable es `authencesn` — una composición AEAD que usa `hmac(sha256)` + `cbc(aes)` con soporte de Número de Secuencia Extendido (ESN), comúnmente utilizada en IPsec.

### 3.2 Causa raíz

En 2017, el commit `72548b093ee3` introdujo la **operación AEAD in-place** en `algif_aead` como una optimización de rendimiento — permitiendo que el motor criptográfico leyera y escribiera en el mismo búfer. Esto era defectuoso:```
The bug chain:

1. Caller binds AF_ALG socket to:
      authencesn(hmac(sha256),cbc(aes))

2. Caller sends a decryption request via sendmsg() with specific flags

3. Caller uses splice() to feed PAGE CACHE PAGES from an open file
   descriptor directly into the socket's scatterlist

4. The authencesn template, during ESN header processing, uses the
   OUTPUT BUFFER as scratch space — writing 4 bytes past the
   expected output boundary

5. Because the scatterlist contains page cache pages (not private
   copies), this scratch write lands DIRECTLY IN THE PAGE CACHE

6. Page cache is shared kernel-wide — all processes reading the
   same file now see the modified bytes

Key insight: splice() is zero-copy — it hands page cache references
to the socket. The in-place "optimization" then writes INTO those
pages. No dirty bit is set because the write goes through the crypto
engine, not the normal write path.

3.3 La Primitiva de Escritura

La vulnerabilidad proporciona una escritura controlada de 4 bytes en la caché de páginas de cualquier archivo que el atacante pueda abrir para lectura:

PropiedadValor
Tamaño de escritura4 bytes
Control de desplazamientoSí — controlado por el atacante mediante el desplazamiento de splice
ObjetivoCaché de páginas de cualquier archivo legible
Marcado de página suciaNinguno
Modificación en discoNinguna
Actualización de marca de tiempoNinguna
Entrada en el registro del kernelNinguna (a menos que auditd esté configurado)

La escritura es repetible: el exploit repite la escritura de 4 bytes para parchear secuencias de código más grandes.

3.4 Cadena de Explotación```

[1] Open /usr/bin/su (or any setuid-root binary) for reading ↓ [2] Map a copy to find target instruction bytes (e.g., UID check, execve path, security gate) ↓ [3] Compute exact page cache offset of target bytes ↓ [4] Set up AF_ALG socket → authencesn(hmac(sha256),cbc(aes)) ↓ [5] splice() the target binary's page cache into the socket ↓ [6] Trigger decryption → authencesn scratch write patches the target bytes in page cache (4 bytes per iteration) ↓ [7] Repeat for each 4-byte patch needed ↓ [8] Execute /usr/bin/su → runs root-owned setuid binary but now with attacker-controlled code in page cache ↓ [9] Root shell

### 3.5 Por Qué Fallan las Defensas Estándar
Descargar herramienta