Mastodon Mastodon Mastodon Mastodon

Cómo la vulnerabilidad DirtyClone permite escalar a root en Linux

Foto del autor

CyberSecureFox Editorial Team

Publicado:

La vulnerabilidad CVE-2026-43503 (CVSS 8.8), denominada DirtyClone, permite a un usuario local corromper el contenido de archivos en el page cache del kernel de Linux mediante el clonado de paquetes de red y obtener privilegios root. El 25 de junio, JFrog Security Research publicó un exploit funcional con una descripción paso a paso del ataque. El parche se incluyó en la rama principal del kernel el 21 de mayo; Ubuntu, Debian, SUSE y Red Hat ya han publicado actualizaciones o están siguiendo la corrección. Los entornos más expuestos son los servidores multiusuario, nodos de contenerización, runners de CI y clústeres de Kubernetes, donde los usuarios sin privilegios pueden crear namespaces.

Mecanismo de la vulnerabilidad

Según los investigadores de JFrog, la causa raíz de DirtyClone es la pérdida de un flag que marca la memoria del paquete de red como compartida con un archivo en disco. Cuando el kernel copia internamente un paquete de red, las funciones auxiliares __pskb_copy_fclone() y skb_shift() borran este flag de seguridad. Un solo bit perdido basta para convertir la optimización de copia cero (zero-copy) en una primitiva de escritura.

La cadena de explotación, según se informa, es la siguiente:

  1. El atacante carga en memoria un binario privilegiado (por ejemplo, /usr/bin/su) y vincula las páginas de memoria correspondientes a un paquete de red.
  2. El kernel clona ese paquete, perdiendo el flag de fragmentación compartida.
  3. El paquete clonado pasa a través de un túnel IPsec controlado por el atacante.
  4. En la fase de descifrado, el contenido se sobrescribe con bytes arbitrarios: las comprobaciones de autenticación en el binario se sustituyen por el código del atacante.
  5. En la siguiente ejecución de su por cualquier usuario del sistema, se produce la elevación a privilegios root.

Una característica crítica del ataque es que el archivo en disco permanece inalterado. La modificación solo existe en el page cache del kernel, por lo que las herramientas de control de integridad de archivos no detectan la sustitución, y un reinicio restaura el binario original. Para cuando pueda producirse una eventual comprobación, el atacante ya dispone de privilegios root.

Requisitos previos para la explotación

Para configurar un túnel IPsec sobre la interfaz loopback se requiere el privilegio CAP_NET_ADMIN. Según los investigadores, en Debian y Fedora los namespaces de usuario no privilegiados están activados por defecto, lo que permite a un usuario local obtener este privilegio dentro de un nuevo namespace. Dado que el page cache es común a nivel de host, las modificaciones realizadas dentro del namespace afectan a todos los procesos de la máquina.

Ubuntu 24.04 y versiones posteriores limitan la creación de namespaces mediante AppArmor, lo que, según JFrog, bloquea la vía de explotación estándar. Sin embargo, la vulnerabilidad en el kernel persiste y no se descartan vectores de ataque alternativos.

JFrog ha confirmado el correcto funcionamiento del exploit en sistemas Debian, Ubuntu y Fedora con configuraciones de namespaces por defecto.

Cuarta vulnerabilidad de la serie

DirtyClone es la cuarta vulnerabilidad de escalada de privilegios con un mecanismo de fallo idéntico en los dos últimos meses. Todas están relacionadas con situaciones en las que memoria de archivos se trata como datos de paquete y una operación de red escribe donde debería copiar:

  • Copy Fail (CVE-2026-31431): finales de abril, escritura de cuatro bytes en el page cache a través del módulo algif_aead.
  • DirtyFrag (CVE-2026-43284, CVE-2026-43500): 7 de mayo, primitiva de escritura completa mediante IPsec ESP y RxRPC.
  • Fragnesia (CVE-2026-46300): 13 de mayo, evasión del parche de DirtyFrag a través de un error de borrado de flag en skb_try_coalesce().

Cada corrección cerraba un camino de código dejando otros abiertos. El problema fundamental es de naturaleza contractual: toda ruta de código que mueva fragmentos de skb está obligada a conservar el bit de fragmento compartido. El mecanismo de copia cero en la pila de red del kernel permite que la memoria de archivos actúe como datos de paquete, y un único flag perdido en cualquier punto de la cadena convierte una optimización de rendimiento en una vulnerabilidad.

El investigador Hyunwoo Kim, que descubrió la DirtyFrag original, presentó el 16 de mayo un parche ampliado que cubre varias funciones auxiliares de transferencia de fragmentos que aún quedaban. La corrección combinada se aceptó el 21 de mayo (commit 48f6a5356a33); el identificador CVE-2026-43503 se asignó el 23 de mayo y la solución se incorporó a Linux v7.1-rc5.

Evaluación del impacto

Los entornos más expuestos son aquellos con acceso multiusuario:

  • Servidores multiusuario con acceso compartido por SSH
  • Nodos de contenerización y clústeres Kubernetes donde los usuarios pueden crear namespaces
  • Runners de CI/CD que ejecutan código de repositorios no confiables
  • Cualquier sistema basado en Debian o Fedora con la configuración de namespaces por defecto

La ausencia de rastros en los registros de auditoría y la invisibilidad para las herramientas de control de integridad de archivos hacen que esta vulnerabilidad sea especialmente peligrosa para infraestructuras que dependen de estos mecanismos de detección.

Recomendaciones de seguridad

La acción principal es instalar la actualización del kernel proporcionada por su distribución. La corrección está incluida en la rama principal (v7.1-rc5) y se ha retroportado a ramas estables y LTS. Se han publicado advisories de Ubuntu, Debian y SUSE.

Si no es posible actualizar de inmediato, hay disponibles dos soluciones temporales:

  • Restringir los namespaces no privilegiados: en Debian y Ubuntu, establecer kernel.unprivileged_userns_clone=0. Otras distribuciones utilizan mecanismos distintos.
  • Bloquear módulos del kernel: añadir a la lista negra los módulos esp4, esp6 y rxrpc. Esto interrumpirá el funcionamiento de IPsec y AFS, y solo es aplicable si estos componentes se cargan como módulos y no van integrados en el kernel.

Ambas soluciones son medidas temporales que no eliminan la vulnerabilidad.

La serie DirtyFrag pone de manifiesto un problema sistémico en la pila de red del kernel de Linux: cualquier función que mueva descriptores de fragmentos sin conservar el flag de fragmento compartido es potencialmente una nueva vulnerabilidad. Las organizaciones que operan sistemas Linux multiusuario no solo deben aplicar el parche actual, sino también incluir en su proceso regular de gestión de vulnerabilidades el seguimiento de actualizaciones del kernel relacionadas con el manejo de skb_shinfo()->flags durante la transferencia de fragmentos.


CyberSecureFox Editorial Team

El equipo editorial de CyberSecureFox cubre noticias de ciberseguridad, vulnerabilidades, campañas de malware, actividad de ransomware, AI security, cloud security y security advisories de proveedores. Los materiales se preparan a partir de official advisories, datos de CVE/NVD, alertas de CISA, publicaciones de proveedores e informes públicos de investigadores. Los artículos se revisan antes de su publicación y se actualizan cuando aparece nueva información.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.