Vulnerabilidad DirtyClone en el Kernel de Linux permite escalada de privilegios
Publicado el
Introducción
La vulnerabilidad DirtyClone, identificada como CVE-2026-43503, ha sido catalogada con un CVSS de 8.8 y representa un riesgo significativo para sistemas basados en Linux. Esta falla de escalada de privilegios, parte de la familia DirtyFrag, permite a un usuario local corromper la memoria respaldada por archivos utilizando paquetes de red clonados.
Detalles Técnicos
El fallo fue expuesto públicamente por JFrog Security Research el 25 de junio de 2026, mostrando un exploit funcional. La vulnerabilidad se origina en la forma en que el kernel de Linux maneja los paquetes de red. Cuando se copia internamente un paquete, dos funciones auxiliares eliminan una bandera de seguridad que marca la memoria del paquete como compartida con un archivo en el disco. Este descuido es la raíz del problema.
Un atacante puede cargar un binario privilegiado, como /usr/bin/su, en memoria, conectar esas páginas de memoria a un paquete de red y obligar al kernel a clonarlo. El paquete clonado pasa a través de un túnel IPsec controlado por el atacante, y durante el proceso de desencriptación, se sobrescriben los controles de inicio de sesión del binario con bytes elegidos por el atacante. Como resultado, la próxima vez que se ejecute su, se concede acceso root.
Dado que la modificación solo ocurre en la copia en memoria del kernel, las herramientas de integridad de archivos no la detectan. Además, el ataque no deja rastro de auditoría, y un reinicio restaura el binario original. El atacante ya tiene acceso root antes de que se sospeche de la intrusión.
Requisitos para la Explotación
Para llevar a cabo esta explotación, se requiere el privilegio CAP_NET_ADMIN para configurar el túnel IPsec de loopback. En distribuciones como Debian y Fedora, los espacios de usuario no privilegiados están habilitados por defecto, lo que permite a un usuario local obtener esta capacidad dentro de un nuevo espacio de nombres. Sin embargo, en Ubuntu 24.04 y versiones posteriores, la creación de espacios de nombres está restringida por AppArmor, bloqueando el camino de explotación por defecto.
Sistemas Afectados
Los sistemas más expuestos incluyen servidores multi-inquilinos, ejecutores de CI, anfitriones de contenedores y clústeres de Kubernetes donde usuarios no confiables pueden crear espacios de nombres. JFrog ha confirmado la explotación en sistemas Debian, Ubuntu y Fedora con configuraciones de espacio de nombres por defecto.
Historia de Vulnerabilidades Relacionadas
DirtyClone es la cuarta vulnerabilidad reciente que presenta el mismo modo de fallo: la memoria respaldada por archivos es tratada como datos de paquetes, y una operación de red en el lugar sobrescribe donde debería haber copiado. Otras vulnerabilidades anteriores incluyen Copy Fail (CVE-2026-31431) y DirtyFrag (CVE-2026-43284 y CVE-2026-43500).
Medidas Recomendadas
Se insta a los usuarios a instalar la actualización del kernel de su distribución. El parche se incluyó en la versión v7.1-rc5 y se ha retroportado a ramas estables y LTS. Distribuciones como Ubuntu, Debian y SUSE han publicado avisos al respecto, mientras que Red Hat ha creado un seguimiento en Bugzilla.
Si no es posible aplicar el parche de inmediato, se sugieren dos métodos alternativos para reducir la superficie de ataque: restringir los espacios de usuario no privilegiados mediante la configuración de `kernel.unprivileged_userns_clone=0` en Debian y Ubuntu, o bien blacklistear los módulos del kernel esp4, esp6 y rxrpc, aunque esto puede afectar funcionalidades de IPsec y AFS.
Conclusión
La clase de vulnerabilidades DirtyFrag podría no haber terminado. Cualquier función que mueva descriptores de fragmentos sin propagar la bandera de fragmento compartido tiene el potencial de convertirse en un nuevo CVE. Se recomienda una auditoría exhaustiva de todos los caminos que toquen `skb_shinfo()->flags` durante la transferencia de fragmentos.