← Volver a artículos
Seguridad· 2 min de lectura

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

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, 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