- Copy Fail permite a un usuario local sin privilegios escalar a root en la mayoría de distribuciones Linux desde 2017.
- El bug se origina en una optimización criptográfica en algif_aead que corrompe 4 bytes en la caché de páginas de archivos.
- Su impacto es especialmente crítico en entornos cloud, contenedores, CI/CD y hosting compartido en Europa.
- Las mitigaciones pasan por actualizar el kernel, deshabilitar algif_aead/AF_ALG y reforzar la monitorización con auditd, SIEM y EDR.
La comunidad de ciberseguridad se ha encontrado con un serio quebradero de cabeza en el corazón de Linux: Copy Fail, registrada como CVE-2026-31431, ha demostrado que incluso un pequeño fallo lógico puede poner en jaque a servidores, nubes públicas y entornos corporativos de medio mundo. El bug llevaba años escondido en el kernel y permite a cualquier usuario local sin privilegios culminar una escalada directa hasta root.
Lo que ha encendido todas las alarmas entre administradores de sistemas, proveedores cloud y responsables de seguridad en España y el resto de Europa es la combinación de factores: exploit diminuto, explotación fiable, difícil visibilidad y enorme superficie afectada. En entornos multiusuario, plataformas de hosting compartido, clústeres de Kubernetes o pipelines de CI/CD donde se ejecuta código de terceros a diario, Copy Fail se ha convertido de golpe en una prioridad urgente.
Qué es Copy Fail (CVE-2026-31431) y por qué importa tanto
Copy Fail es una vulnerabilidad de escalada local de privilegios (LPE) en el kernel de Linux. Cualquier proceso con capacidad para ejecutar código en la máquina -una cuenta corriente de usuario, un contenedor Docker, un job de CI o un servicio con permisos limitados- puede aprovecharla para convertirse en root si el sistema es vulnerable.
La falla reside en el subsistema criptográfico del kernel, concretamente en la interfaz AF_ALG y el módulo algif_aead, y afecta a kernels distribuidos desde 2017 hasta la aplicación de los parches oficiales. Eso incluye, con matices, a las principales distribuciones: Ubuntu, Debian, SUSE, Red Hat Enterprise Linux (RHEL), Amazon Linux y kernels utilizados por WSL2, muy presentes en infraestructuras europeas.
Su peligrosidad no viene de que abra por sí sola un acceso remoto desde internet, sino de que convierte casi cualquier acceso local limitado en control absoluto. Una vulnerabilidad en una aplicación web, unas credenciales robadas, un contenedor comprometido o un script de CI mal protegido se pueden encadenar con Copy Fail para tomar el control total de la máquina en segundos.
Los análisis sitúan su puntuación en torno a 7,8 sobre 10 en la escala CVSS, dentro de la categoría de alta gravedad. Más allá del número, lo relevante es que el exploit funciona sin necesidad de condiciones de carrera, sin ajustes finos por versión de kernel y con un script extremadamente compacto.
Cómo y cuándo se descubrió el fallo Copy Fail
Copy Fail salió a la luz a finales de abril de 2026 de la mano de equipos de investigación como Theori y Xint Code, que publicaron un análisis detallado del problema y un exploit de prueba de concepto en Python. Ese script, de apenas 732 bytes y unas diez líneas usando módulos estándar (os, socket y zlib), demostró que la explotación es trivial en la práctica.
Lo más llamativo es el papel de la inteligencia artificial en el hallazgo. Theori explicó que su herramienta de auditoría de código asistida por IA, Xint Code, fue capaz de localizar la vulnerabilidad en aproximadamente una hora, escaneando el código del subsistema criptográfico y detectando patrones de comportamiento anómalos en el módulo afectado.
Esa rapidez contrasta con los casi nueve años en los que el bug ha permanecido camuflado en el kernel a pesar de las revisiones humanas y pruebas habituales. La situación ha abierto un debate incómodo: la complejidad actual del kernel supera la capacidad de revisión manual, y las herramientas basadas en IA ya no son un «extra», sino un requisito para detectar ciertos fallos profundos.
Firmas como Bugcrowd han subrayado el impacto económico de este cambio: vulnerabilidades de kernel de esta categoría -universales, portables, sin condiciones de carrera y con capacidad de escape de contenedores- se pagaban históricamente en mercados grises por sumas que van desde decenas de miles hasta varios millones de dólares. Si una herramienta de IA puede descubrirlas en una hora, la premisa de que estos bugs son raros porque son caros de encontrar deja de ser válida.
La raíz técnica: el módulo criptográfico algif_aead y authencesn
En el centro de Copy Fail está el subsistema de criptografía del kernel y, más en concreto, la interfaz algif_aead accesible mediante sockets AF_ALG. Esta interfaz permite que aplicaciones en espacio de usuario utilicen algoritmos de cifrado y autenticación del kernel sin requerir privilegios especiales, algo que muchas distribuciones mantienen habilitado por defecto.
El origen del problema se remonta a 2017, cuando se introdujo en el archivo algif_aead.c una optimización para permitir operaciones AEAD “in-place”. El cambio, asociado a un commit identificado en los análisis, pretendía mejorar el rendimiento reutilizando los mismos buffers de entrada y salida en lugar de trabajar en áreas separadas.
En ese contexto entra en juego la plantilla criptográfica authencesn (HMAC-SHA256 + AES-CBC). Durante determinadas operaciones, parte de la memoria destinada a la salida se utiliza como zona temporal de trabajo. A raíz de la optimización, una de las escrituras de «scratch» termina desbordándose cuatro bytes por encima del área esperada, justo sobre una página de la caché de archivos (page cache) que se ha encadenado como parte del scatterlist de destino.
Esa combinación de decisiones -operación in-place, uso de páginas de caché como destino y escritura de scratch al final del buffer- genera la vulnerabilidad: un usuario sin privilegios puede provocar la escritura controlada de 4 bytes en la caché de páginas de cualquier archivo legible. Si el archivo afectado es un binario con bit setuid, la puerta para la escalada de privilegios queda abierta.
Cómo se explota Copy Fail: AF_ALG, splice() y 4 bytes que lo cambian todo
El exploit de prueba de concepto publicado por los investigadores demuestra que Copy Fail no es una curiosidad teórica. Con un script en Python 3.10+ de unos 732 bytes y sin dependencias externas se puede lograr root en distribuciones como Ubuntu, RHEL, SUSE o Amazon Linux utilizando el mismo código sin ajustar.
El mecanismo se apoya en dos elementos clave: la interfaz AF_ALG y la llamada al sistema splice(). Primero, el exploit abre un socket AF_ALG y lo configura para usar el modo AEAD basado en authencesn. Después, prepara un descriptor de archivo que apunte a la página de caché de un binario con setuid (por ejemplo, /usr/bin/su) y emplea splice() para enganchar esa página al buffer que el kernel utilizará como destino de la operación criptográfica.
Durante el procesamiento, por culpa del bug de 2017, el kernel escribe 4 bytes más allá del final del buffer previsto. Como consecuencia, esos bytes acaban sobre la copia en caché del binario objetivo. El atacante controla el valor y la posición de esos 4 bytes a través de los parámetros de la petición y de los datos adicionales autenticados (AAD).
Repitiendo esta secuencia varias veces, es posible modificar instrucciones críticas del binario en memoria: desde alterar comprobaciones de permisos o contraseñas hasta inyectar pequeñas secuencias que desemboquen en la ejecución de una shell con privilegios elevados. Cuando, finalmente, se llama a execve(«/usr/bin/su») o a otro binario modificado, el kernel tira de la copia en caché, no del disco, y se ejecuta la versión corrupta con permisos de root.
Todo el proceso utiliza llamadas al sistema completamente legítimas (socket con AF_ALG, splice, execve de binarios habituales), sin necesitar técnicas de carrera, sin explotación de direcciones de memoria frágiles y sin payloads compilados. Eso hace que la barrera técnica para explotar Copy Fail sea relativamente baja para un atacante con conocimientos medios de Linux.
Un bug casi invisible: caché de páginas modificada, disco intacto
Uno de los rasgos más inquietantes de Copy Fail es que solo corrompe la versión en memoria de los archivos, no el contenido en disco. Linux emplea la page cache para acelerar el acceso a ficheros: mantiene en RAM copias de las partes más utilizadas en lugar de leer continuamente del almacenamiento físico.
Cuando el exploit manipula la caché de páginas de un binario setuid, la corrupción queda confinada a esa copia en RAM. El kernel, debido al bug, no marca la página como «sucia», por lo que no se produce ninguna escritura de vuelta al disco. Desde el punto de vista del sistema de archivos, el binario sigue siendo perfectamente íntegro: cualquier comprobación mediante hashes o herramientas de integridad ve el archivo en reposo como si nada hubiera pasado.
Esta particularidad tiene dos consecuencias clave. Por un lado, el rastro del ataque es volátil: basta un reinicio o que el sistema libere memoria y tenga que recargar el binario desde disco para que desaparezca la modificación. Por otro, la detección forense basada en snapshot del sistema de archivos o en análisis offline se complica enormemente, ya que las evidencias directas en disco son nulas.
Además, el uso de llamadas al sistema aparentemente inofensivas se mimetiza con la actividad normal de muchas aplicaciones. Sin reglas de monitorización muy afinadas, incluso soluciones EDR avanzadas pueden tener difícil distinguir un uso legítimo de AF_ALG y splice() de un intento de explotar Copy Fail.
Impacto real en servidores, cloud y contenedores en Europa
El alcance de la vulnerabilidad trasciende con mucho el caso de un PC aislado. La caché de páginas del kernel es compartida entre todos los procesos de un mismo host, lo que convierte a Copy Fail en una herramienta especialmente peligrosa en entornos donde conviven múltiples cargas de trabajo.
En clústeres de Kubernetes utilizados por empresas españolas y europeas, un pod con permisos modestos que consiga ejecutar el exploit podría romper el aislamiento del contenedor y escalar al nodo host si el kernel no está parcheado. Desde ese punto, el atacante puede pivotar hacia otros pods, acceder a secretos, manipular el plano de control o incluso comprometer el clúster entero.
En proveedores de hosting compartido y VPS, muy comunes en el mercado español, un cliente malicioso con acceso a su instancia podría usar Copy Fail para impactar sobre el servidor físico que aloja varias máquinas virtuales o contenedores, debilitando la separación entre clientes. Algo similar se aplica a plataformas de SaaS multi-tenant donde varias organizaciones comparten infraestructura bajo un mismo kernel.
Los entornos de integración y entrega continua (CI/CD) son otro punto delicado. Runners de GitHub Actions, GitLab CI, Jenkins u orquestadores internos que compilan y ejecutan código de múltiples proyectos se convierten en objetivos atractivos. Un repositorio malicioso o una pipeline vulnerable pueden ser el trampolín para que Copy Fail dé el salto a la máquina que hospeda esos trabajos.
En sectores regulados de la Unión Europea -banca, energía, telecomunicaciones, administración pública-, donde Linux es la base de gran parte de la infraestructura, el problema no es solo técnico. La ruptura potencial de los límites de aislamiento entre clientes o entre entornos con distinto nivel de criticidad puede tener implicaciones regulatorias y de cumplimiento normativo.
Distribuciones afectadas y alcance de la exposición
Los análisis publicados por diferentes equipos coinciden en que cualquier kernel Linux que incorpore el cambio de 2017 en algif_aead y mantenga AF_ALG activo es vulnerable, siempre que no se haya aplicado el parche posterior. Eso abarca una franja amplia de versiones, desde la serie 4.14 en adelante, utilizada masivamente desde 2017.
Entre las distribuciones habituales en España y Europa se encuentran Ubuntu, Debian, SUSE, RHEL, Amazon Linux y distintas compilaciones de WSL2. Las ramas LTS de Ubuntu (16.04, 18.04, 20.04, 22.04, 24.04…) han recibido actualizaciones en sus kernels soportados, mientras que versiones antiguas fuera de mantenimiento quedan expuestas de forma permanente.
Debian ha catalogado el impacto en versiones como bullseye, bookworm y trixie según la rama de kernel empleada, con parches publicados o en curso para las series 5.x y 6.x. En el ecosistema de Amazon, tanto Amazon Linux 2 como Amazon Linux 2023 -muy utilizados en instancias EC2 y nodos de EKS- han tenido que actualizar múltiples ramas (5.4, 5.10, 5.15, 6.12, 6.18).
En el caso de Red Hat, la respuesta inicial fue algo más pausada, con una evaluación preliminar que sugería retrasar la aplicación del arreglo en ciertas ramas empresariales. La presión de la comunidad y la publicación de exploits funcionales llevó, sin embargo, a acelerar la liberación de parches para RHEL y derivados ante el riesgo evidente para clientes corporativos.
Un punto especialmente delicado son las instalaciones heredadas: servidores con Ubuntu 16.04 o 18.04 sin soporte, sistemas con kernels personalizados o entornos industriales que apenas reciben actualizaciones. Esos equipos, que todavía abundan en pymes españolas y en algunas infraestructuras de nicho, difícilmente recibirán un parche oficial, por lo que seguir operándolos implica aceptar un riesgo permanente.
El rol de la IA y el replanteamiento de la seguridad del kernel
Copy Fail ha servido también como ejemplo práctico de cómo la inteligencia artificial está cambiando el equilibrio entre atacantes y defensores. Herramientas como Xint Code no se limitaron a revisar patrones sintácticos, sino que analizaron el comportamiento de bloques de código complejos, detectando interacciones peligrosas entre optimizaciones históricas.
Para muchos expertos, este caso demuestra que la idea clásica de que «muchos ojos hacen los bugs superficiales» ya no se sostiene en su forma original. El kernel de Linux es tan grande y tan dinámico que decisiones razonables tomadas en momentos distintos pueden entrelazarse años después y dar lugar a vulnerabilidades profundas que pasan inadvertidas para la revisión humana convencional.
La consecuencia lógica es que la auditoría continua asistida por IA debería integrarse en los procesos de revisión de código del kernel y de distribuciones. No como sustituto de los mantenedores humanos, sino como filtro adicional capaz de encontrar combinaciones peligrosas de cambios antes de que lleguen a producción.
No es descabellado pensar que los reguladores europeos de infraestructuras críticas terminen exigiendo, a medio plazo, el uso de técnicas automatizadas de análisis avanzado para kernels desplegados en sectores sensibles. El objetivo sería reducir la probabilidad de que otros fallos con la misma profundidad y alcance que Copy Fail pasen casi una década escondidos en sistemas que gestionan servicios esenciales.
Al mismo tiempo, el hecho de que la IA pueda detectar bugs de este nivel en una hora implica que los actores maliciosos también disponen de esa capacidad, o la tendrán pronto. La velocidad de descubrimiento de vulnerabilidades graves aumenta, y con ella la necesidad de procesos de parcheo ágiles, monitorización reforzada y planes de respuesta afinados.
Estado de los parches y corrección en el kernel
La solución estructural al problema pasa por actualizar el kernel de Linux a una versión que incluya el arreglo oficial. En el árbol principal, el cambio clave -asociado a un commit que revierte la operación AEAD in-place en algif_aead- separa permanentemente la scatterlist de entrada (que puede contener páginas de caché) de la de salida del usuario.
En la práctica, el parche devuelve algif_aead a un modelo out-of-place: los datos de entrada y los buffers de salida se gestionan de forma separada, y la escritura de scratch que antes se derramaba sobre la page cache ya no toca memoria asociada a archivos. De este modo, la primitiva de escritura de 4 bytes sobre la caché desaparece.
Las principales distribuciones han ido incorporando este cambio en sus actualizaciones de seguridad. Ubuntu, Debian y SUSE publicaron con relativa rapidez kernels corregidos para sus ramas estables y LTS; Red Hat y Amazon ajustaron sus calendarios tras el aumento de la presión mediática y el riesgo percibido por sus clientes empresariales.
En sistemas completamente actualizados, Copy Fail deja de ser explotable. No obstante, el proceso de despliegue de parches en grandes organizaciones europeas no es inmediato: hay que coordinar ventanas de mantenimiento, pruebas de regresión, reinicios de servicios críticos y, en muchos casos, lidiar con aplicaciones sensibles a cambios de kernel.
Por ello, incluso aunque los parches existan sobre el papel, se espera que durante meses sigan conviviendo en Europa miles de servidores vulnerables a Copy Fail, especialmente en entornos donde el ciclo de actualización es más lento o está condicionado por requisitos regulatorios o de disponibilidad.
Mitigaciones temporales: qué hacer si no puedes parchear aún
Mientras llega el momento de reiniciar todos los sistemas, existen medidas de mitigación que reducen de forma notable la superficie de ataque. La recomendación general de los investigadores y de organismos como CERT-EU es comenzar por deshabilitar el módulo vulnerable en aquellos hosts donde no sea estrictamente necesario.
Una estrategia ampliamente difundida consiste en bloquear algif_aead mediante modprobe, asociándolo a un binario inocuo para impedir que se cargue, y descargando el módulo en caliente con rmmod cuando ya está en memoria. Esta solución no afecta a tecnologías como dm-crypt/LUKS, IPsec/XFRM, OpenSSL, GnuTLS, NSS o SSH, que no dependen de algif_aead directamente.
Para entornos de alto riesgo o con cargas de trabajo no confiables, diversos equipos recomiendan ir más allá y bloquear la creación de sockets AF_ALG mediante políticas seccomp o reglas de AppArmor/SELinux. Es una medida más agresiva, que puede romper aplicaciones legítimas que se apoyen en la API criptográfica del kernel, por lo que conviene evaluar caso por caso en cada organización.
Otra acción práctica es revisar y reducir, en la medida de lo posible, el número de binarios con bit setuid presentes en los sistemas y evitar el uso innecesario de sudo. Menos objetivos potenciales implica que el atacante tiene un margen de maniobra menor si intenta aprovechar Copy Fail u otras vulnerabilidades de escalada local basadas en manipulación de binarios privilegiados.
En el ecosistema Ubuntu se han popularizado ejemplos de uso de utilidades como pro fix para comprobar el estado de CVE-2026-31431 en cada máquina, activar mitigaciones temporales y verificar la instalación de parches. Aunque estas herramientas facilitan la vida del administrador, no sustituyen la necesidad de programar actualizaciones completas de kernel en los plazos más cortos posibles.
Detección y monitorización: cómo identificar intentos de explotación
Más allá de parchear, muchas organizaciones europeas quieren saber si alguien ha intentado, o ha llegado a, aprovechar Copy Fail en sus sistemas y cómo identificar esos ataques; resulta útil recurrir a guías para identificar y proteger frente a intrusiones cuando se sospecha de explotación.
Una de las recomendaciones más repetidas es configurar reglas de auditd para registrar el uso de la llamada splice() y la creación de sockets AF_ALG por parte de usuarios no privilegiados. Por ejemplo, se puede vigilar el uso de splice sobre descriptores de archivos asociados a binarios setuid como su, sudo, passwd, gpasswd, newgrp, chfn, chsh, mount, umount o fusermount3 cuando el proceso emisor es un intérprete (Python, bash, sh) en ubicaciones no habituales.
También resulta útil monitorizar la creación de sockets con dominio AF_ALG (valor 26 en decimal) iniciados por UIDs de usuario interactivo (típicamente >=1000) en sistemas donde no se espera un uso intensivo de esa API. En muchos servidores corporativos, la aparición repentina de AF_ALG en procesos sin relación con criptografía avanzada ya es de por sí sospechosa.
Soluciones avanzadas de EDR y plataformas SIEM están incorporando reglas específicas para Copy Fail bajo nombres como possible_lpe_by_python o possible_copy_fail_cve_2026_31431. Estas reglas correlacionan varios eventos: lectura de binarios setuid, uso de splice, creación de sockets AF_ALG y, acto seguido, lanzamiento de una shell con permisos escalados.
Además de las llamadas al sistema, conviene prestar atención a cambios anómalos de UID dentro de una misma cadena de procesos, especialmente cuando un proceso hijo hereda más privilegios de los que cabría esperar sin que medie sudo, su u otros mecanismos legítimos. Ese tipo de anomalías puede delatar tanto Copy Fail como otras vulnerabilidades de escalada local.
Copy Fail frente a Dirty COW, Dirty Pipe y otros fallos históricos
Copy Fail se suma a una lista de vulnerabilidades célebres de escalada de privilegios en Linux, entre las que destacan Dirty COW (CVE-2016-5195) y Dirty Pipe (CVE-2022-0847). Todas ellas juegan, de un modo u otro, con la gestión interna de memoria y la caché de páginas del kernel para conseguir escribir donde no deberían.
Sin embargo, hay diferencias relevantes. Dirty COW y Dirty Pipe se centraban en manipular, con condiciones de carrera o peculiaridades de tuberías, datos que podían afectar a archivos en disco o a flujos internos. Copy Fail, en cambio, actúa casi exclusivamente sobre la copia en memoria de los binarios, lo que la hace especialmente discreta a ojos de herramientas de análisis forense tradicional.
Otra diferencia clave es la simplicidad de explotación. Dirty COW requería ganar una race condition en el subsistema de memoria, a menudo con múltiples intentos y cierto riesgo de cuelgues. Dirty Pipe era más predecible pero específico de determinadas versiones. Copy Fail se apoya en una primitiva lógica sin condiciones de carrera, con un exploit estable y portable entre varias distribuciones empresariales.
Desde el punto de vista de los defensores, la lección que deja este nuevo caso es que las optimizaciones de rendimiento en el kernel tienen un coste potencial en la superficie de ataque. Un cambio perfectamente razonable para ahorrar ciclos de CPU en operaciones criptográficas ha terminado habilitando una escalada de privilegios universal que afecta a casi una década de sistemas.
Para equipos de seguridad y operaciones en Europa, donde Linux es el pilar de gran parte de la infraestructura crítica y corporativa, ese aprendizaje se traduce en una prioridad clara: tratar la actualización y el endurecimiento del kernel como un proceso continuo y estratégico, no como una tarea secundaria que se pospone para «cuando haya tiempo».
En conjunto, Copy Fail (CVE-2026-31431) ha puesto de manifiesto que un único fallo lógico en una pieza central del kernel puede derribar los muros que separan contenedores, máquinas virtuales y servicios compartidos. Mantener los kernels al día, desactivar módulos criptográficos vulnerables allí donde no sean imprescindibles, reforzar la monitorización de AF_ALG, limitar los binarios setuid y revisar con lupa entornos multi-tenant y de CI/CD son ya tareas ineludibles para cualquier equipo que administre sistemas Linux en España o en el resto de Europa y quiera seguir durmiendo relativamente tranquilo.
