# Copy Fail (CVE-2026-31431): un fallo de 2017 en algif_aead permite escalar a root en Linux

- **Publicado el:** 2026-03-23
- **Categoría:** Seguridad
- **Página original:** https://linuxgratis.com/articulos/cve-2026-31431-copy-fail-algif-aead-privesc-root-kernel-linux

Una optimización del módulo crypto AF_ALG del kernel deja que un usuario local escriba 4 bytes en cualquier archivo cacheado y se convierta en root. Afecta a casi todas las distribuciones.

---

Un usuario sin privilegios que pueda abrir un socket no debería poder reescribir `/usr/bin/su` y acabar siendo root. Eso es justo lo que permite CVE-2026-31431, bautizado **Copy Fail**, un fallo de escalada local en el módulo `algif_aead` del kernel Linux que se reportó al equipo de seguridad del kernel el 23 de marzo de 2026.

## Qué es y de dónde viene

`algif_aead` forma parte de la API criptográfica AF_ALG, la interfaz que expone los algoritmos del kernel a programas de espacio de usuario a través de sockets. El problema nace de una optimización que se introdujo en 2017. Para evitar copiar datos, el código permitía colocar páginas de la *page cache* directamente en una *scatterlist* de destino escribible. Esa idea, pensada para ganar rendimiento, abrió la puerta a que un proceso escribiera sobre páginas que en realidad respaldan archivos del sistema.

El identificador formal es CWE-669 (transferencia incorrecta de recursos entre esferas) y la puntuación CVSS es **7.8**. No es ejecución remota, pero la combinación de "cualquier usuario local" y "escalada directa a root" lo convierte en algo serio.

## Cómo se explota

Encadenando operaciones del socket AF_ALG con `splice()`, un atacante consigue una escritura controlada de 4 bytes sobre cualquier archivo legible respaldado por la cache de páginas. Cuatro bytes parecen poco, pero bien colocados bastan para corromper un binario setuid como `su` y abrir el camino a una shell de root. La técnica también sirve para salir de contenedores: en nodos de Kubernetes y runners de CI/CD que comparten kernel con el host, ese mismo fallo permite escapar del aislamiento.

El parche en mainline (commit `a664bf3d603d`, del 1 de abril de 2026) revierte directamente aquella optimización de 2017. Tras la publicación, la vulnerabilidad entró en el catálogo KEV de CISA con prueba de concepto pública.

## A quién afecta

Prácticamente cualquier distribución con un kernel compilado entre 2017 y la llegada del parche. Entre las versiones verificadas como vulnerables están Ubuntu 24.04 LTS (kernel 6.17 en imágenes AWS), Amazon Linux 2023, RHEL 10.1 y SUSE 16. Ubuntu 26.04 y posteriores no están afectadas. Si administras la [línea principal del kernel Linux](/linux-kernel), conviene revisar la versión exacta que corres.

## Qué hacer

Lo primero es actualizar el kernel en cuanto tu distribución publique la corrección. Mientras llega, hay dos mitigaciones razonables:

- Desactivar el módulo `algif_aead`. Crea un archivo en `/etc/modprobe.d/disable-algif.conf` con la línea `install algif_aead /bin/true` para impedir que se cargue. Si alguna aplicación legítima usa AF_ALG, pruébalo antes en un entorno de staging.
- En contenedores y clústeres de Kubernetes, bloquear la creación de sockets `AF_ALG` mediante políticas seccomp. Es la barrera más eficaz para frenar el escape de contenedor.

La mayoría de cargas de trabajo no necesitan AF_ALG para nada, así que desactivarlo rara vez rompe algo. Aun así, comprueba tus dependencias antes de aplicarlo en producción.

## Fuente

- CERT-EU / Red Hat — High Vulnerability in the Linux Kernel (Copy Fail): <https://cert.europa.eu/publications/security-advisories/2026-005/>
- NVD — CVE-2026-31431: <https://nvd.nist.gov/vuln/detail/CVE-2026-31431>
