Copy Fail: la vulnerabilidad de Linux que abre la puerta al usuario root

La comunidad de ciberseguridad se ha topado con un fallo especialmente delicado en el corazón del sistema operativo Linux. Se trata de Copy Fail, registrado como CVE-2026-31431, una vulnerabilidad que llevaba años pasando desapercibida y que permite a cualquier usuario local sin privilegios hacerse, literalmente, con el control total de la máquina.
Este fallo, que afecta a casi todas las distribuciones modernas de Linux utilizadas, ha encendido las alarmas en administradores de sistemas, proveedores cloud y responsables de seguridad. Su combinación de sencillez, portabilidad y dificultad de detección lo sitúa entre las vulnerabilidades de escalada de privilegios locales más serias de los últimos tiempos.
Qué es Copy Fail (CVE-2026-31431) y por qué es tan grave
Copy Fail (CVE-2026-31431) es una vulnerabilidad de escalada local de privilegios (LPE) que permite a un usuario con acceso básico a la máquina, ya sea una cuenta normal de sistema, un proceso de aplicación o incluso un usuario dentro de un contenedor Docker o Kubernetes, convertirse en root. No necesita acceso remoto directo: basta con poder ejecutar código en el sistema.
El fallo está presente en el kernel de Linux desde 2017 y afecta a todas las versiones compiladas entre ese año y la aplicación del parche oficial. Eso implica que distribuciones ampliamente usadas como Ubuntu, Debian, SUSE, Red Hat Enterprise Linux (RHEL), Amazon Linux o determinadas versiones de WSL2 están o han estado dentro del alcance del problema, especialmente en servidores compartidos, entornos de CI/CD y nubes públicas.
La peligrosidad no radica tanto en que se pueda explotar de forma remota de la nada, sino en que cualquier fallo previo que otorgue ejecución de código, una web vulnerable, unas credenciales robadas o un usuario interno malintencionado, puede combinarse con Copy Fail para escalar a root con un exploit extremadamente pequeño y fiable.
El origen del fallo conocido como Copy Fail: un cambio «inocente» en 2017
La raíz técnica de Copy Fail se remonta a un cambio introducido en el kernel en 2017, identificado en distintos análisis como el commit que añadió operaciones «in-place» para determinadas funciones criptográficas en el módulo algif_aead. Esta modificación buscaba mejorar el rendimiento del subsistema criptográfico, pero introdujo un error lógico en el manejo de buffers.
El módulo afectado se apoya en la plantilla criptográfica authencesn, que combina HMAC-SHA256 con cifrado AES-CBC. En este contexto, el algoritmo utiliza parte de la memoria asignada como zona temporal de trabajo. El problema es que, durante la operación, escribe 4 bytes fuera de los límites esperados del buffer, justo sobre una página de la caché de archivos del sistema.
Ese pequeño desbordamiento controlado es suficiente para que un atacante pueda modificar 4 bytes concretos de la caché de páginas de cualquier archivo legible, incluyendo binarios marcados con setuid que se ejecutan con privilegios de superusuario, como /usr/bin/su o sudo. Lo crítico es que la modificación ocurre solo en memoria y no en el archivo almacenado en disco.
Cómo funciona Copy Fail: 4 bytes que lo cambian todo
La vulnerabilidad se apoya en dos elementos clave del kernel: la interfaz criptográfica AF_ALG y la llamada al sistema splice(). AF_ALG permite a procesos de espacio de usuario acceder al subsistema criptográfico del kernel sin privilegios especiales, algo que está habilitado por defecto en prácticamente todas las distribuciones.
El exploit, cuya prueba de concepto original tiene alrededor de 732 bytes de código en Python y unas diez líneas, abre un socket AF_ALG y lo asocia al modo AEAD vulnerable. A continuación, usa splice() para mapear directamente páginas de la caché de archivos (por ejemplo, páginas del binario /usr/bin/su) dentro de la estructura de datos que el kernel utilizará como destino de una operación criptográfica.
Durante el proceso criptográfico, el algoritmo authencesn utiliza el buffer de salida como área temporal y realiza una escritura de 4 bytes fuera de los límites esperados. En este escenario, esa escritura cae sobre la página de caché del archivo elegido. El atacante controla la ubicación (offset) y el valor de esos 4 bytes mediante los parámetros de la petición y los datos adicionales autenticados (AAD).
Repetiendo el proceso las veces necesarias, es posible ir inyectando pequeñas porciones de shellcode o modificando instrucciones críticas dentro de la versión en memoria del binario con setuid. Cuando finalmente se ejecuta el programa (por ejemplo, con execve("/usr/bin/su"),) el kernel carga el contenido desde la caché en vez de desde el disco, ejecutando así el código modificado con privilegios de root.
Un ataque sigiloso: cambios en memoria, archivos intactos en disco
Una de las características más inquietantes de Copy Fail es que la corrupción nunca marca el archivo como modificado. La caché de páginas alterada no se señala como «sucia», de modo que el kernel no escribe de vuelta esos cambios al disco. El binario almacenado físicamente permanece intacto y pasa sin problemas cualquier verificación de integridad basada en el archivo en reposo.
Eso significa que, tras un reinicio del sistema o al forzarse la recarga del archivo desde disco (por presión de memoria u otras circunstancias), el rastro de la intrusión desaparece. La modificación vive únicamente en RAM mientras la página de caché esté en uso, lo que complica enormemente la detección forense tras el ataque.
Además, el exploit utiliza llamadas al sistema completamente legítimas, como socket() con AF_ALG, splice() y execve() de binarios habituales, que se mezclan fácilmente con la actividad normal del sistema. No hay condiciones de carrera complejas ni necesidad de adivinar direcciones de memoria, lo que reduce la complejidad técnica requerida para explotarlo.
Impacto de Copy Fail en servidores, nube y contenedores
El alcance de Copy Fail se extiende mucho más allá de una máquina aislada. Dado que la caché de páginas del kernel es compartida entre todos los procesos del sistema, el fallo rompe las barreras de aislamiento típicas de tecnologías como Docker, LXC o Kubernetes siempre que el módulo afectado esté presente en el kernel del host.
En un escenario típico de alojamiento web, un solo cliente que explote una vulnerabilidad menor en su propia aplicación podría apoyarse en Copy Fail para comprometer todo el servidor físico y acceder a los datos o sistemas del resto de clientes alojados en la misma máquina. Algo similar ocurre en entornos de CI/CD compartidos y nubes públicas, donde múltiples cargas de trabajo no confiables se ejecutan en el mismo host.
En centros de datos críticos, incluidos bancos, operadores de telecomunicaciones y proveedores cloud que usan Linux como base, la vulnerabilidad pone en riesgo la separación entre contenedores y el propio host. Un usuario aparentemente limitado a un pod de Kubernetes podría llegar a tomar el control del nodo y, con ello, del clúster completo si no se aplican las medidas correctas.
Distribuciones afectadas y severidad
Los análisis publicados por distintas empresas de seguridad apuntan a que prácticamente todas las distribuciones de Linux compiladas desde 2017 hasta la corrección del fallo son vulnerables si incluyen el módulo algif_aead y la interfaz AF_ALG habilitada. Entre ellas se encuentran Ubuntu, RHEL, SUSE, Amazon Linux, Debian y algunas compilaciones de WSL2 que utilizan kernel con soporte AF_ALG.
Los sistemas más expuestos son aquellos que ejecutan kernels dentro del rango afectado sin parches de seguridad recientes, especialmente en servidores multiusuario, alojamientos compartidos y plataformas donde distintos clientes comparten máquina física. La vulnerabilidad ha recibido una puntuación de 7,8 sobre 10 en la escala CVSS, lo que la clasifica como de «Severidad Alta».
Fabricantes y distribuciones han reaccionado con distinta velocidad. Mientras que Debian, Ubuntu y SUSE lanzaron actualizaciones con rapidez, otros proveedores, como Red Hat, retrasaron inicialmente la publicación del parche, aunque acabaron sumándose en cuestión de horas ante la presión de la comunidad y la magnitud del problema.
El papel de la inteligencia artificial en el descubrimiento
Uno de los aspectos más llamativos del caso Copy Fail es que no fue detectado durante casi una década pese a las exhaustivas revisiones del kernel. El bug salió a la luz gracias a herramientas de análisis de código apoyadas en inteligencia artificial empleadas por equipos de investigación de seguridad como Xint Code y Theori.
Los investigadores utilizaron soluciones de escaneo automatizado potenciadas por IA que revisan el código línea a línea y buscan patrones de comportamiento anómalos en subsistemas complejos como el criptográfico. Este enfoque permitió localizar el fallo lógico en la plantilla authencesn y en la forma en que se combinaba con AF_ALG y las optimizaciones introducidas en 2017.
Sin este apoyo automatizado, la combinación de cambios acumulados durante años, diseño del algoritmo y peculiaridades del manejo de memoria habría hecho extremadamente difícil para un equipo humano detectar la vulnerabilidad, algo que refuerza la idea de que la IA se está convirtiendo en una pieza clave tanto para encontrar fallos como para proteger sistemas críticos.
Medidas urgentes de mitigación y parcheo
La respuesta recomendada por los expertos es clara: actualizar el kernel de Linux a una versión que incluya el parche correspondiente. El cambio clave, identificado en las ramas estables del kernel como el commit a664bf3d603d, corrige la validación de buffers en las operaciones criptográficas «in-place» del módulo algif_aead y revierte la optimización problemática introducida años atrás.
En entornos de producción donde no sea posible reiniciar y actualizar de inmediato (por ejemplo, centros de datos con servicios críticos 24/7), se recomiendan medidas temporales. Entre ellas, desactivar la carga del módulo vulnerable añadiendo reglas en la configuración de modprobe, como asociar algif_aead (o en algunos casos AF_ALG) a un binario inofensivo para impedir su uso y descargar el módulo con rmmod si ya está cargado.
Algunos proveedores han sugerido, para entornos de alto riesgo, bloquear completamente la interfaz criptográfica AF_ALG mediante perfiles seccomp u otras políticas de endurecimiento. Esta medida es más drástica y puede afectar a aplicaciones legítimas que se apoyan en esa API, por lo que conviene evaluarla con cuidado en cada organización.
En el caso concreto de ciertas versiones de Ubuntu empleadas, se han difundido ejemplos de configuración para desactivar módulos relacionados mientras llega la actualización oficial, lo que incluye reglas de modprobe.d y comandos para comprobar el estado del CVE con herramientas del propio sistema, como sudo pro fix CVE-2026-31431.
Cómo detectar intentos de explotación en sistemas Linux
Aunque la vulnerabilidad esté parcheada, muchas organizaciones quieren verificar si han sufrido intentos de explotación o establecer sistemas de alerta temprana. Algunas empresas de seguridad han publicado guías detalladas para detectar comportamientos sospechosos relacionados con Copy Fail, tanto a través de auditd como de soluciones SIEM.
Uno de los enfoques propuestos consiste en monitorizar los accesos de lectura a binarios con setuid (como su, sudo, passwd, gpasswd, newgrp, chfn, chsh, mount, umount, fusermount3, etc.) cuando se realizan desde procesos que no residen en rutas habituales como /usr/bin o /bin, o cuando el proceso llamante es un intérprete como Python.
También se recomienda vigilar el uso de la llamada splice() por parte de usuarios no privilegiados inmediatamente después de haber leído uno de estos binarios con setuid, así como la creación de sockets con el parámetro SOCK_STREAM asociado a AF_ALG (valor 26 en decimal) desde identificadores de usuario de sesión interactiva (UIDs mayores o iguales a 1000).
Otra señal de alerta es la aparición de cadenas de comandos del tipo sh -c -- su u otras combinaciones donde un script de Python lanza una shell para ejecutar binarios privilegiados sin que exista una justificación clara en el entorno monitorizado. Soluciones avanzadas de detección y respuesta como Kaspersky EDR Expert ya han incorporado reglas específicas (por ejemplo, possible_lpe_by_python o possible_copy_fail_cve_2026_31431) para identificar estos patrones.
Detección mediante SIEM y herramientas de seguridad avanzadas
En organizaciones con infraestructuras complejas, especialmente en el sector financiero, industrial o de administración pública, el uso de plataformas SIEM resulta clave para centralizar los eventos de seguridad relacionados con Copy Fail. Los fabricantes han publicado ejemplos de reglas auditd que permiten registrar las llamadas relevantes.
Entre las recomendaciones figuran reglas para vigilar el uso de splice() por parte de usuarios no root al manipular descriptores de archivos asociados a binarios con setuid, así como la creación de sockets AF_ALG especificando el parámetro correspondiente en decimal. Estos eventos pueden correlacionarse en el SIEM para levantar alertas cuando se detectan secuencias sospechosas.
Además de las reglas basadas en llamadas al sistema, se incide en monitorizar cambios anómalos de identificadores de usuario (UID) dentro de una misma cadena de procesos, en especial cuando un proceso hijo hereda más privilegios de los esperados sin que medie setuid o una llamada explícita a sudo. Esta vigilancia puede ayudar a detectar no solo Copy Fail, sino también otro tipo de vulnerabilidades de escalada local.
Los proveedores de seguridad están adaptando sus productos para contemplar nuevas variantes del exploit, ya disponibles en lenguajes como Go o Rust, que podrían alterar ligeramente la secuencia de llamadas al sistema y tratar de esquivar detecciones más básicas.
Copy Fail frente a anteriores vulnerabilidades del kernel de Linux
En la historia reciente del kernel de Linux han aparecido otros fallos de escalada de privilegios que también jugaron con la caché de páginas, como Dirty Cow o Dirty Pipe. Copy Fail se considera un «pariente» cercano en cuanto a la clase de primitive que ofrece al atacante, pero actúa en un subsistema distinto y con un enfoque algo diferente.
Mientras que vulnerabilidades anteriores permitían sobrescribir datos en archivos teóricamente solo de lectura para terminar modificando ficheros sensibles en disco, Copy Fail se centra en corromper la versión en memoria a través de la ruta criptográfica del kernel, sin necesidad de que el archivo cambie físicamente.
Esta diferencia hace que Copy Fail sea especialmente atractivo desde el punto de vista del sigilo y la portabilidad: el exploit es pequeño, funciona en múltiples arquitecturas y distribuciones, no depende de condiciones de carrera y se apoya en interfaces que suelen venir habilitadas de serie, como AF_ALG. Para un atacante, eso se traduce en una herramienta muy cómoda de incorporar a cadenas de explotación más amplias.
Recomendaciones para empresas y administradores
Para organizaciones que dependen intensivamente de Linux, la hoja de ruta pasa por combinar acciones técnicas inmediatas con una revisión más estratégica de su postura de seguridad.
En el corto plazo, se aconseja inventariar todos los sistemas Linux en producción, comprobar la versión de kernel y aplicar los parches proporcionados por la distribución correspondiente. Allí donde el reinicio sea complejo, deben priorizarse los entornos más expuestos, como servidores accesibles desde internet, plataformas multiusuario y nodos de Kubernetes que ejecuten cargas no confiables.
Como refuerzo, es recomendable revisar las políticas de contenedores para limitar el acceso a interfaces del kernel como AF_ALG cuando no sean estrictamente necesarias, endurecer los perfiles de seguridad (por ejemplo, con seccomp o AppArmor/SELinux) y reducir el número de binarios con setuid en los sistemas.
En paralelo, conviene que los equipos de seguridad actualicen sus reglas de monitorización y alertas para detectar patrones de ataque compatibles con Copy Fail, así como realizar pruebas internas con las herramientas de verificación pública que han publicado los investigadores, siempre dentro de entornos controlados y siguiendo las políticas internas de cada organización.
Copy Fail ha dejado claro que, incluso en un ecosistema tan revisado como el kernel de Linux, un pequeño fallo lógico puede pasar años escondido y convertirse en un serio quebradero de cabeza para empresas y administraciones de todo el mundo. La combinación de parches rápidos, medidas de mitigación bien pensadas, monitorización reforzada y el uso creciente de herramientas de análisis impulsadas por inteligencia artificial se perfila como la mejor manera de convivir con este tipo de vulnerabilidades sin bajar la guardia.
