
DirtyClone es una nueva escalada de privilegios del kernel de Linux de la familia DirtyFrag. JFrog Security Research publicó un tutorial práctico sobre cómo explotar esta vulnerabilidad el 25 de junio. Esta es la primera demostración pública de esta variante.
Seguimiento como CVE-2026-43503 (CVSS 8.8), que permite a los usuarios locales corromper la memoria respaldada por archivos y obtener root a través de paquetes de red replicados. Este parche se entregó a la línea principal el 21 de mayo. Si tu kernel no lo tiene, actualízalo ahora.
Cuando el kernel copia un paquete de red internamente, dos funciones auxiliares colocan indicadores de seguridad que marcan la memoria del paquete como compartida con un archivo en el disco. Esta bandera faltante es toda la vulnerabilidad.
Un atacante puede cargar binarios privilegiados como /usr/bin/su en la memoria, conectar esas páginas de memoria a paquetes de red y forzar la clonación del kernel. Los paquetes clonados pasan a través de un túnel IPsec controlado por el atacante y el paso de descifrado sobrescribe la verificación de inicio de sesión binario con bytes elegidos por el atacante. La próxima vez que alguien ejecute su , se le entregará la raíz.
Los archivos en el disco nunca se modifican. Debido a que este cambio existe sólo en la copia en memoria del kernel, las herramientas de integridad de archivos lo pasan por alto, el ataque no deja rastro de auditoría y un reinicio restaura el binario original. Cuando alguien decide comprobarlo, el atacante ya tiene root.
La explotación requiere CAP_NET_ADMIN para configurar un túnel IPsec de bucle invertido. En Debian y Fedora, los espacios de nombres de usuarios sin privilegios están habilitados de forma predeterminada, lo que permite a los usuarios locales obtener su funcionalidad dentro del nuevo espacio de nombres.
A partir de Ubuntu 24.04, la creación de espacios de nombres a través de AppArmor está restringida y las rutas de explotación predeterminadas están bloqueadas. La caché de la página se comparte a nivel de host, por lo que los cambios realizados dentro del espacio de nombres afectan a todos los procesos de la máquina.
Los sistemas expuestos son servidores multiinquilino, ejecutores de CI, hosts de contenedores y clústeres de Kubernetes que permiten a usuarios que no son de confianza crear espacios de nombres. JFrog ha observado exploits en sistemas Debian, Ubuntu y Fedora con configuraciones de espacio de nombres predeterminadas.
4to en la serie

Esta es la cuarta escalada de privilegios reciente debido al mismo modo de falla. La memoria respaldada en un archivo se trata como paquetes de datos y luego una operación de red local los escribe en la ubicación donde se deben copiar.
El error de copia (CVE-2026-31431) ocurrió por primera vez a finales de abril y aprovechó el módulo algif_aead para realizar una escritura en caché de página de 4 bytes. DirtyFrag (CVE-2026-43284 y CVE-2026-43500) siguió el 7 de mayo encadenando rutas IPsec ESP y RxRPC para primitivas de escritura completas. Fragnesia (CVE-2026-46300) apareció el 13 de mayo y omitió el parche DirtyFrag debido a un error de eliminación de bandera en skb_try_coalesce().
Cada solución cerró una ruta de código y dejó abiertas otras rutas de código. El exploit demostrado por DirtyClone se centra en __pskb_copy_fclone(), que también afecta a skb_shift(). Una solución CVE más amplia cubre ayudas de reenvío de indicadores adicionales que pueden provocar la pérdida de los mismos indicadores.
La raíz del problema no es una mala función auxiliar. Esta es una cuestión contractual. Todas las rutas de código que se mueven a través de fragmentos skb deben conservar los bits del fragmento compartido cada vez.
La red de copia cero del kernel permite que la memoria respaldada por archivos actúe como paquetes de datos, y una sola bandera colocada en algún lugar de la cadena convierte las optimizaciones de rendimiento en primitivas de escritura. En cada variante, encontramos un camino en el que el contrato no se cumplió.
El investigador original de DirtyFrag, Hyunwoo Kim, presentó un extenso parche multisitio que cubre los pocos ayudantes de transferencia de banderas restantes el 16 de mayo. La solución combinada se fusionó el 21 de mayo (commit 48f6a5356a33), se le asignó CVE-2026-43503 el 23 de mayo y se envió con Linux v7.1-rc5 el 24 de mayo.
que hacer
Instale actualizaciones del kernel para su distribución. Esta solución se aplicó en sentido ascendente en v7.1-rc5 y se actualizó a las ramas estable y LTS. Ubuntu, Debian y SUSE han publicado avisos. Red Hat tiene una entrada de seguimiento de Bugzilla.
Si no puede aplicar el parche ahora, existen dos soluciones para reducir su superficie de ataque. Restrinja los espacios de nombres de usuarios sin privilegios. En Debian y Ubuntu, configure kernel.unprivileged_userns_clone=0 (otras distribuciones usan mecanismos diferentes).
Alternativamente, incluya en la lista negra los módulos del kernel esp4, esp6 y rxrpc. Sin embargo, esto rompe IPsec y AFS y sólo funciona si estas características son módulos cargables en lugar de compilarse en el kernel. Ambos son controles temporales, no soluciones.
La clase DirtyFrag probablemente no esté completa. Banderas compartidas Cualquier función que mueva descriptores de fragmentos sin propagar banderas es un nuevo CVE potencial, y las auditorías deben cubrir todas las rutas que tocan skb_shinfo()->flags durante la transferencia de fragmentos.
Source link
