Denominada DirtyClone es la cuarta escalada de privilegios reciente con el mismo modo de fallo
DirtyClone es una nueva vulnerabilidad de escalada de privilegios del kernel de Linux perteneciente a la familia DirtyFrag. JFrog Security Research publicó el 25 de junio un tutorial práctico para explotar esta vulnerabilidad, la primera demostración pública de esta variante.
Identificada como CVE-2026-43503 (CVSS 8.8), esta vulnerabilidad permite a un usuario local corromper la memoria respaldada por archivos mediante un paquete de red clonado y obtener acceso de administrador. El parche se incorporó al kernel principal el 21 de mayo; si tu kernel no lo incluye, actualízalo ahora.
Cuando el núcleo copia internamente un paquete de red, dos funciones auxiliares omiten una bandera de seguridad que indica que la memoria del paquete se comparte con un archivo en el disco. Esa bandera faltante es la causa principal de la vulnerabilidad.
El atacante carga un binario privilegiado como /usr/bin/su en la memoria, inserta esas páginas de memoria en un paquete de red y fuerza al kernel a clonarlo. El paquete clonado pasa a través de un túnel IPsec controlado por el atacante, y el proceso de descifrado sobrescribe las comprobaciones de inicio de sesión del binario con bytes elegidos por el atacante. La próxima vez que alguien ejecute su, se le otorgan privilegios de administrador.
El archivo en disco nunca cambia. La modificación reside únicamente en la copia en memoria del kernel, por lo que las herramientas de integridad de archivos no la detectan, el ataque no deja rastro y un reinicio restaura el binario original. El atacante ya tiene acceso de administrador cuando alguien se digna a comprobarlo.
La explotación requiere CAP_NET_ADMIN para configurar el túnel IPsec de bucle invertido. En Debian y Fedora, los espacios de nombres de usuario sin privilegios están habilitados de forma predeterminada, por lo que un usuario local puede obtener esa capacidad dentro de un nuevo espacio de nombres.
Ubuntu 24.04 y versiones posteriores restringen la creación de espacios de nombres mediante AppArmor, bloqueando la ruta de explotación predeterminada. La caché de páginas se comparte a nivel del host, por lo que las modificaciones realizadas dentro de un espacio de nombres afectan a todos los procesos de la máquina.
Los sistemas expuestos son servidores multiusuario, ejecutores de integración continua, hosts de contenedores y clústeres de Kubernetes donde usuarios no autorizados pueden crear espacios de nombres. JFrog confirmó la vulnerabilidad en sistemas Debian, Ubuntu y Fedora con configuraciones de espacios de nombres predeterminadas.
Cuarto de una serie
Esta es la cuarta escalada de privilegios reciente con el mismo modo de fallo: la memoria respaldada por archivos se trata como datos de paquetes, y luego una operación de red in situ escribe donde debería haber copiado.
La vulnerabilidad Copy Fail (CVE-2026-31431) surgió a finales de abril, explotando el módulo algif_aead para escribir cuatro bytes en la caché de páginas.
DirtyFrag (CVE-2026-43284 y CVE-2026-43500) apareció el 7 de mayo, encadenando rutas IPsec ESP y RxRPC para una primitiva de escritura completa.
Fragnesia (CVE-2026-46300) apareció el 13 de mayo, eludiendo el parche DirtyFrag a través de un error de eliminación de banderas en skb_try_coalesce().
Cada corrección cerró una ruta de código y dejó otras abiertas. La vulnerabilidad demostrada por DirtyClone se centra en __pskb_copy_fclone(), aunque skb_shift() también se ve afectada; la corrección CVE más amplia cubre funciones auxiliares de transferencia de fragmentos adicionales donde podría perderse la misma bandera.
El problema de fondo no reside en una función auxiliar defectuosa, sino en un problema de contrato: cada ruta de código que mueve fragmentos de skb debe preservar el bit de fragmento compartido, siempre.
La arquitectura de red sin copia del kernel permite que la memoria respaldada por archivos funcione como datos de paquetes, y la pérdida de una sola bandera en cualquier punto de la cadena convierte una optimización de rendimiento en una operación de escritura. Cada variante encontró una ruta donde el contrato no se cumplió.
El investigador original de DirtyFrag, Hyunwoo Kim, presentó el 16 de mayo un parche más amplio para múltiples sitios que cubría varias funciones auxiliares de transferencia de fragmentos restantes. La solución combinada se fusionó el 21 de mayo (commit 48f6a5356a33), se le asignó el identificador CVE-2026-43503 el 23 de mayo y se incluyó en Linux v7.1-rc5 el 24 de mayo.
Qué hacer
Instala la actualización del kernel de tu distribución. La solución se incluyó en la versión 7.1-rc5 y se ha aplicado a las ramas estables y de soporte a largo plazo (LTS). Ubuntu, Debian y SUSE han publicado avisos; Red Hat tiene una entrada de seguimiento en Bugzilla.
Si no puedes aplicar el parche hoy, existen dos soluciones alternativas que reducen la superficie de ataque. Restringe los espacios de nombres de usuario sin privilegios: en Debian y Ubuntu, configura kernel.unprivileged_userns_clone=0 (otras distribuciones utilizan mecanismos diferentes).
Como alternativa, se pueden incluir en la lista negra los módulos del kernel esp4, esp6 y rxrpc, aunque esto interrumpe IPsec y AFS y solo funciona cuando estas funciones son módulos cargables en lugar de estar compiladas en el kernel. Ambas son medidas de control temporales, no soluciones definitivas.
Es probable que la clase DirtyFrag aún no esté terminada. Cualquier función que mueva descriptores de fragmentos sin propagar la bandera shared-frag es una posible nueva vulnerabilidad CVE, y la auditoría debería cubrir todas las rutas que tocan skb_shinfo()->flags durante la transferencia de fragmentos.









