Resumen ejecutivo
El 29 de abril de 2026, los investigadores divulgaron públicamente una vulnerabilidad de escalada de privilegios local (LPE) altamente confiable rastreada como CVE-2026-31431. Esta vulnerabilidad se conoce comúnmente como Copy Fail. Descubierto en aproximadamente una hora mediante un proceso asistido por IA este fallo lógico permite a un atacante local sin privilegios escalar su acceso a root en prácticamente todas las principales distribuciones de Linux lanzadas desde 2017.
A diferencia de muchas vulnerabilidades del kernel, este fallo lógico es determinista, lo que significa que no depende de condiciones de carrera ni de desplazamientos específicos del kernel. Un único script de Python de 732 bytes puede explotarlo con éxito sin ninguna modificación en diferentes distribuciones de Linux.
La vulnerabilidad se origina en el subsistema criptográfico del kernel de Linux, concretamente en el módulo algif_aead de la interfaz AF_ALG (una API criptográfica de espacio de usuario). En lugar de un único error de codificación, el fallo se debió a una combinación de tres actualizaciones independientes:
- La incorporación del algoritmo authencesn en 2011
- La interfaz AF_ALG, compatible con AEAD en 2015
- Una fatal optimización in situ introducida en 2017
Durante las operaciones criptográficas, un error de optimización in situ hace que el algoritmo utilice el búfer de destino de forma incorrecta, escribiendo cuatro bytes controlados más allá de la región legítima directamente en la caché de páginas de archivos del sistema. Las versiones afectadas incluyen los kernels de Linux entre las versiones 4.14 y 6.19.12.
Esta vulnerabilidad afecta a millones de sistemas que ejecutan distribuciones principales como Ubuntu, Amazon Linux, Red Hat Enterprise Linux, Debian, SUSE y AlmaLinux. Un atacante con acceso local estándar puede explotar esta vulnerabilidad para modificar maliciosamente la caché en memoria de archivos ejecutables privilegiados (como su o sudo) sin alertar a las comprobaciones de integridad, ya que los archivos físicos en disco permanecen inalterados. Dado que el kernel y su caché de páginas se comparten en todo un nodo, este fallo permite a los atacantes:
- Salir fácilmente de los contenedores Kubernetes
- Superar a los hosts multiusuario
- Comprometer los canales (CI/CD) de integración continua y entrega continua.
Instamos encarecidamente a las organizaciones a aplicar parches a sus sistemas inmediatamente mediante las actualizaciones del kernel publicadas por el proveedor.
Los clientes de Palo Alto Networks reciben protección y mitigación para CVE-2026-31431 a través de los siguientes productos:
La Fundación Linux ha publicado un aviso con detalles de mitigación para CVE-2026-314331. Palo Alto Networks recomienda encarecidamente aplicar de forma inmediata las actualizaciones del kernel emitidas por el proveedor. Si esta opción no es factible, recomendamos seguir la guía de mitigación provisional para desactivar el módulo vulnerable hasta que se puedan aplicar los parches.
El equipo de respuesta ante incidentes de Unit 42 también puede involucrarse para ayudar con una intrusión o para proporcionar una evaluación proactiva que permita reducir el riesgo.
| Vulnerabilidades debatidas | CVE-2026-31431 |
Detalles de CVE-2026-31431
La vulnerabilidad rastreada como CVE-2026-31431, conocida como Copy Fail, es un fallo lógico determinista localizado en el subsistema criptográfico del kernel de Linux, concretamente en el módulo algif_aead de la interfaz AF_ALG.
La causa raíz
El fallo tiene su origen en una optimización in situ defectuosa introducida en el kernel de Linux en 2017 (commit 72548b093ee3) para el cifrado AEAD. Esta optimización in situ de 2017 causó específicamente que req->src y req->dst apuntaran a una scatterlist combinada. Debido a esto, las páginas de la caché de páginas de la llamada a splice() se encadenaron de forma directa en la scatterlist de destino con permisos de escritura.
Durante las operaciones criptográficas, el algoritmo authencesn utiliza indebidamente el búfer de destino de la llamada como bloc de notas. Debido a esto, escribe cuatro bytes controlados más allá de la región de salida legítima, cruzando un límite de la scatterlist encadenado, y falla al restaurarlos. El parche (commit a664bf3d603d) corrige esto revirtiendo el módulo a operación fuera de lugar, separando las scatterlists de origen y destino para que las páginas de la caché de páginas permanezcan estrictamente en la fuente de solo lectura.
Mecanismo de acción
Un atacante sin privilegios puede explotar este error de gestión de memoria haciendo un mal uso de la interacción entre la interfaz de socket AF_ALG y la llamada al sistema splice(). Cuando splice() pasa páginas de la caché de páginas al subsistema criptográfico, la vulnerabilidad permite al atacante dirigir esa sobreescritura de cuatro bytes directamente a la caché de páginas de archivos del kernel.
El algoritmo authencesn se utiliza para la compatibilidad con números de secuencia extendidos (ESN) de IPsec y utiliza el búfer de destino como bloc de notas para reorganizar estos números de secuencia. El atacante controla el valor exacto de sobrescritura de cuatro bytes suministrando el seqno_lo (la mitad inferior del número de secuencia) dentro de los bytes 4-7 de los Datos Autenticados Asociados (AAD) durante la llamada sendmsg().
Explotación a través de la caché de páginas
La caché de páginas es la copia temporal en memoria de un archivo que el kernel lee cuando carga un binario para su ejecución. Un atacante puede aprovechar la sobreescritura de cuatro bytes para apuntar a la caché de páginas de cualquier binario setuid-root legible, como /usr/bin/su, sudo o passwd.
El atacante controla exactamente dónde se produce la sobreescritura manipulando los parámetros splice offset, splice length y assoclen (longitud asociada). Esto les permite apuntar específicamente a la sección .text de un binario setuid como /usr/bin/su para inyectar su shellcode.
- Escalada de privilegios: La modificación de la copia en caché del binario altera su contexto de ejecución. Cuando se ejecuta el binario, otorga al atacante privilegios de superusuario (UID 0), rompiendo de hecho los límites de confianza del kernel.
- Sigilo: Dado que esta corrupción se produce por completo en la memoria RAM del sistema, el archivo físico del disco permanece totalmente inalterado. Esto evita las rutas tradicionales del sistema de archivos virtual (VFS) y las herramientas de supervisión de la integridad de los archivos. Una vez que la página es desalojada de la memoria o el sistema se reinicia, la caché se recarga limpia desde el disco, sin dejar rastro del compromiso.
Características del exploit
Lo que hace que Copy Fail sea excepcionalmente grave en comparación con vulnerabilidades LPE anteriores de Linux como Dirty Cow o Dirty Pipe es su confiabilidad y simplicidad:
- Sin condiciones de carrera ni desplazamientos: Es una falla lógica en línea recta que no depende de ganar una ventana de condición de carrera o adivinar desplazamientos de memoria específicos del kernel.
- Confiabilidad total: El exploit es determinista y se dispara con éxito en el primer intento.
- Alta portabilidad: El exploit puede ejecutarse utilizando un script de Python independiente de 732 bytes que se basa únicamente en librerías estándar (os, socket, zlib), lo que significa que no requiere compilación ni dependencias externas. Este mismo script funciona sin modificaciones en prácticamente todas las principales distribuciones de Linux lanzadas desde 2017.
Guías provisionales para CVE-2026-31431
La vulnerabilidad se corrigió en las ramas estables upstream del kernel de Linux mediante la reversión de la optimización defectuosa de 2017 (commit a664bf3d603d).
Si no es posible aplicar parches de inmediato, los administradores deben implementar una mitigación provisional desactivando el módulo algif_aead afectado. Esto se puede lograr ejecutando los siguientes comandos como root para bloquear la carga del módulo y eliminarlo del kernel:
- echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
- rmmod algif_aead
La Fundación Linux ha publicado un aviso con detalles de mitigación para CVE-2026-314331.
Consultas de búsqueda de amenazas gestionadas de Unit 42
El equipo de búsqueda de amenazas gestionadas de Unit 42 sigue rastreando cualquier intento de explotar este CVE en nuestros clientes, por medio de Cortex XDR y las consultas XQL que se indican a continuación. Los clientes de Cortex XDR también pueden utilizar estas consultas XQL para buscar indicios de explotación.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
// Title: CopyFail Detection via Non-root Launching su via Uncommon Parent Process // Description: Query looks for non-root users launching the switch user (su) process via a parent process other than the normally expected processes such as shells, sudo, or su itself. May identify false positives, yet works well for identification of potential CopyFail exploitation. // MITRE ATT&CK TTP ID: T1068 dataset = xdr_data | fields _time, agent_hostname, agent_os_type, event_type, event_sub_type, actor_effective_username, actor_effective_user_sid, actor_process_image_path, actor_process_image_name, actor_process_command_line, actor_process_image_sha256, action_process_image_name, action_process_image_command_line, action_process_user_sid | filter event_type = ENUM.PROCESS and event_sub_type = ENUM.PROCESS_START and agent_os_type = ENUM.AGENT_OS_LINUX and actor_effective_user_sid != "0" and ( (action_process_image_name = "su" and action_process_image_command_line in ("su", "/usr/bin/su")) or (action_process_image_name in ("bash", "sh") and action_process_image_command_line ~= "-c(?:\s--)?\ssu$") ) and actor_process_image_name not in ("bash", "sh", "zsh", "ksh", "sudo", "su") | comp earliest(_time) as first_seen, latest(_time) as last_seen, count() as execution_count, values(actor_effective_username) as actor_usernames, values(actor_process_image_path) as actor_image_paths, values(actor_process_command_line) as actor_cmd_lines, values(action_process_image_command_line) as action_cmd_lines, values(action_process_user_sid) as action_UIDs by agent_hostname, actor_process_image_name, actor_process_image_sha256 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// Title: CopyFail Proof of Concept Code Execution // Description: Query looks for potential CopyFail proof of concept (POC) code execution via identifying potentially correlated curl and su process executions. May identify false positives, yet works well for identification of CopyFail POC provided by Xint.Code. // MITRE ATT&CK TTP ID: T1068 config case_sensitive = false | dataset = xdr_data | filter agent_os_type = ENUM.AGENT_OS_LINUX | filter event_type = ENUM.PROCESS and event_sub_type = ENUM.PROCESS_START | filter action_process_image_name in ("curl", "su") | bin _time span = 2m | filter action_process_image_command_line contains "copy.fail/exp" or (action_process_image_command_line = "su" or action_process_image_command_line ="/usr/bin/su") | fields _time, agent_id, event_id, agent_hostname, action_process_image_command_line, action_process_image_name, actor_process_instance_id | comp count() as event_count, values(agent_id) as agent_id, values(event_id) as event_id, values(action_process_image_name) as processes, values(action_process_image_command_line) as commands by agent_hostname, _time, actor_process_instance_id | filter processes contains "su" and processes contains "curl" |
Conclusión
Dada la cantidad de información disponible públicamente, la facilidad de uso y la eficacia del exploit Copy Fail, Palo Alto Networks recomienda encarecidamente aplicar inmediatamente las actualizaciones del kernel emitidas por el proveedor. Si esta opción no es factible, recomendamos seguir la guía de mitigación provisional para desactivar el módulo vulnerable hasta que se puedan aplicar los parches.
Esto es especialmente importante, dado que ya está disponible públicamente un script de prueba de concepto (PoC) altamente confiable y se ha observado una actividad de prueba preliminar.
Los clientes de Palo Alto Networks están mejor protegidos gracias a nuestros productos, como se indica a continuación.
Protecciones de productos de Palo Alto Networks para CVE-2026-31431
Los clientes de Palo Alto Networks pueden aprovechar varias protecciones y actualizaciones de productos para identificar y defenderse contra esta amenaza.
Si cree que podría haber resultado vulnerado o tiene un problema urgente, póngase en contacto con el equipo de respuesta ante incidentes de Unit 42 o llame al:
- Norteamérica: llamada gratuita: +1 (866) 486-4842 (866.4.UNIT42)
- Reino Unido: +44.20.3743.3660
- Europa y Oriente Medio: +31.20.299.3130
- Asia: +65.6983.8730
- Japón: +81.50.1790.0200
- Australia: +61.2.4062.7950
- India: 000 800 050 45107
- Corea del Sur: +82.080.467.8774
Next-Generation Firewalls con Advanced Threat Prevention
El Next-Generation Firewall con la Advanced Threat Prevention puede ayudar a bloquear la transmisión de scripts de exploit a través de la red mediante la siguiente firma de prevención de amenazas: 97176 - Vulnerabilidad de escalada de privilegios en el kernel de Linux.
Cortex XDR y XSIAM
El agente Cortex XDR para Linux, a partir de la actualización de contenido 2240-35441, incluye capacidades de detección y prevención para muestras conocidas relacionadas con la vulnerabilidad Copy Fail.
Cortex XDR y XSIAM ayudan a proteger contra las actividades previas y posteriores a la explotación, utilizando el enfoque de protección multicapa, que incluye Advanced WildFire, Endpoint Protection Modules (EPM), Behavioral Threat Protection y el módulo Local Analysis.
Cortex Cloud
La protección de endpoints de Cortex Cloud puede ayudar a proteger a las organizaciones de las amenazas expresadas en este artículo. Cortex Cloud 2.1 puede detectar y prevenir operaciones maliciosas mediante análisis de comportamiento y habilitados por IA para detectar cuándo los atacantes se dirigen a endpoints de Linux, incluidos contenedores y máquinas virtuales. Además, puede detectar cuándo se hace un uso indebido de las políticas de IAM de la plataforma en la nube asociadas con esos endpoints objetivo y alertar a los equipos cuando los activos son vulnerables a estas amenazas.
Actualizado el 6 de mayo de 2026 a las 3:15 p m. PT para ampliar la cobertura de Cortex XDR y XSIAM y añadir firewalls de nueva generación con prevención de amenazas avanzada.
Actualizado el 7 de mayo de 2026 a las 2:00 p m. PT para cambiar la versión del contenido Cortex XDR.