Aikido

Dirty Frag (CVE-2026-43284): el fallo del núcleo de Linux que convierte el acceso de lectura en acceso de root

Escrito por
Nicholas Thomson

Un archivo de solo lectura debería seguir siendo de solo lectura. La vulnerabilidad «Dirty Frag» (CVE-2026-43284, CVE-2026-43500 y CVE-2026-46300) consigue que el núcleo de Linux modifique su copia almacenada en caché de todos modos.

Esta vulnerabilidad permite que un programa que se ejecute prácticamente sin privilegios escriba en archivos que, en teoría, solo debería poder leer, modificando la copia que el núcleo mantiene en memoria. A partir de ahí, puede reescribir algún elemento en el que el sistema confía y otorgarse a sí mismo acceso de root. En entornos de contenedores, el mismo truco que permite acceder al núcleo del host también puede acceder al núcleo del nodo compartido por todas las cargas de trabajo.

El fallo de seguridad lleva años presente en el código de redes del núcleo, por lo que afecta a la mayoría de las versiones del núcleo compatibles y a casi todas las distribuciones principales. Linux ha corregido el fallo y todas las distribuciones lo han adaptado a sus versiones anteriores, por lo que la corrección aparecerá con un número de versión diferente en cada una de ellas.

Resumen de «Dirty Frag»

Red Hat agrupa tres CVE bajo el nombre de «Dirty Frag». Se encuentran en diferentes partes del código de redes del núcleo, y uno de ellos es una variante posterior que no se incluyó en la primera ronda de parches. A continuación se muestra una comparación entre ellos.

El subsistema te indica si esto te afecta. Si no utilizas VPN IPsec ni AFS, es una indicación rápida de hasta qué punto debes prestarle atención. El módulo es lo que debes comprobar (lsmod | grep -E 'esp4|esp6|rxrpc') para ver qué hay cargado.

CVE Ruta del núcleo (módulo) Puntuación CVSS Estado de uso Impacto
CVE-2026-43284 IPsec/XFRM ESP (esp4 / esp6) 8,8 (Alta) Núcleo vulnerable; la vía de ataque pública suele basarse en la creación de espacios de nombres de usuario o de red. Corrupción de la caché de páginas seguida de una escalada de privilegios a root local.
CVE-2026-43500 RxRPC / AFS (rxrpc) 7,8 (Alta) El módulo rxrpc debe estar disponible y ser accesible. La disponibilidad varía según la distribución. Corrupción de la caché de páginas seguida de una escalada de privilegios a root local.
CVE-2026-46300 (Fragnesia) XFRM ESP-in-TCP (esp4, esp6) 7,8 (Alta) Una variante posterior independiente que requirió una corrección adicional del núcleo. Escrituras arbitrarias en la caché de páginas que pueden alterar binarios con privilegios y dar acceso a root.

Linux mantiene en la memoria los datos de los archivos a los que se ha accedido recientemente, para no tener que leerlos del disco cada vez. Esa copia en memoria se denomina caché de páginas. Ciertas funciones del núcleo, como splice() pasar esos datos almacenados en caché al código de red sin copiarlos, sino entregando un puntero a la ubicación donde ya se encuentran los datos. Esto ahorra trabajo, siempre y cuando cada paso posterior sepa que la memoria es compartida y no escriba en ella.

El error apareció en dos partes distintas del código de redes del núcleo. Una era ESP, que gestiona el tráfico VPN cifrado. La otra era RxRPC, un protocolo más antiguo utilizado principalmente por el sistema de archivos AFS. Ni la ruta ESP ni la de RxRPC comprueban si la memoria es compartida antes de escribir en ella.

Esto permitía a un atacante hacerse con un archivo de solo lectura que, si se manipulaba, podía otorgarle privilegios, algo así como /usr/bin/su, e introduce su contenido en la ruta de red para que el proceso de descifrado defectuoso acabe escribiendo en la memoria de ese archivo. La escritura acaba en la caché de páginas, que es la copia del archivo que el sistema proporciona a cualquier proceso que lo lea. El archivo del disco nunca cambia, pero la versión en memoria ahora muestra lo que el atacante ha hecho que muestre. Al ejecutar «su», se lee la copia manipulada y se concede al atacante acceso de root, aunque en realidad solo tuviera permiso para leer ese archivo.

Fragnesia, registrada como CVE-2026-46300, es la variante más reciente. La corrección de «Dirty Frag» hizo que el núcleo se basara en un marcador que indica: «este fragmento es compartido; haz una copia segura antes de modificarlo». Sin embargo, un antiguo error de 2013 en el código que fusiona fragmentos de paquetes elimina silenciosamente ese marcador. Permaneció inofensivo durante trece años porque nada dependía de él. Por desgracia, la corrección de «Dirty Frag» sí dependía de él, lo que convirtió un error latente en una nueva vía de acceso a privilegios de root. 

¿Por qué es importante el «Dirty Frag» en el caso de los contenedores?

Todos los contenedores comparten un mismo núcleo con el host, por lo que un contenedor comprometido puede acceder al código vulnerable del núcleo si sus permisos lo permiten (llamadas al sistema, espacios de nombres o configuración de la política de seguridad). Los investigadores ya han publicado exploits de prueba de concepto que funcionan para Kubernetes, y Ubuntu detalla el riesgo que supone un contenedor escape. Si el contenedor puede acceder al núcleo, el riesgo es el acceso como usuario root en todo el nodo.

Puedes neutralizar parte del ataque ejecutando las cargas de trabajo sin privilegios de root, activando el perfil seccomp «RuntimeDefault», aplicando políticas de pod restringidas y limitando los espacios de nombres de usuario sin privilegios. Pero nada de eso soluciona la vulnerabilidad en sí. Solo la actualización del kernel del proveedor lo consigue.

¿Cómo se puede saber si un servidor está expuesto?

Empieza por el host que está realmente en ejecución, no por el Dockerfile. Hay tres comandos que te pueden ayudar.

Ejecuta uname -r Para averiguar qué versión del núcleo estás utilizando, compárala con la versión corregida que figura en el aviso de seguridad de tu distribución. No la compares con el número del desarrollador original. El patrón vulnerable se remonta a núcleos de alrededor de 2017, y las distribuciones empresariales y LTS, como RHEL, Ubuntu y Debian, retroportan la corrección a la versión más antigua del núcleo que ya estás utilizando, por lo que un núcleo parcheado puede seguir indicando una versión de hace años. Un host RHEL 8 totalmente parcheado sigue indicando la versión 4.18, y esa versión 4.18 ya incluye la corrección. Compruébalo con la versión del paquete corregido de tu proveedor.

lsmod | grep -E 'esp4|esp6|rxrpc' Indica si se ha cargado la ruta de código vulnerable. Un resultado vacío no significa que no haya ningún riesgo, ya que estos módulos se cargan bajo demanda. Y el hecho de que se haya cargado no implica automáticamente que sea peligroso. esp4, esp6 y rxrpc son módulos comunes que resultan totalmente seguros en un núcleo parcheado. Esto te permite conocer tu superficie de ataque y determinar si merece la pena aplicar la medida de mitigación de la lista negra.

sysctl user.max_user_namespaces muestra el grado de accesibilidad de la ruta ESP. Un valor superior a cero significa que los usuarios sin privilegios pueden crear espacios de nombres, que es la vía habitual de acceso a la ruta ESP. El valor cero cierra esa puerta, pero solo para ESP. La ruta RxRPC no necesita espacios de nombres, por lo que no ofrece una protección total.

Comprueba el estado de tu proveedor. Red Hat afirma que CVE-2026-43500 no afecta a sus productos, mientras que CVE-2026-43284 y CVE-2026-46300 sí afectan a los núcleos de Red Hat Enterprise Linux para los que ofrece soporte y a cualquier sistema basado en ellos. Ubuntu publica la versión exacta del paquete corregido para cada línea de núcleo para la que ofrece soporte.

¿Qué aspectos debes supervisar?

El código de prueba de concepto ya es público. Microsoft ha informado de una actividad limitada en el mundo real en la que un atacante amplía sus privilegios utilizando su, aunque hay que tener en cuenta que podría tratarse de «Dirty Frag» o de su predecesor, «Copy Fail», ya que es difícil distinguirlos solo a partir de los registros de procesos.

La forma más realista de detectar esto es mediante las herramientas de auditoría y EDR que ya utilizas. El marco de auditoría de Linux puede registrar la ejecución de procesos y las transiciones setuid, que es donde aparecería la secuencia reveladora: la descarga y ejecución de un binario desconocido, seguida inmediatamente por su. Presta atención a si se cargan esp4, esp6 o rxrpc en el momento en que se produzcan otras actividades sospechosas, especialmente en un host que no tenga motivos para utilizar IPsec o AFS, y a si se ejecutan archivos ELF recién descargados. 

Si sospechas que se está produciendo una explotación, realiza las comprobaciones de integridad desde un entorno de confianza, en lugar de desde el propio host, que podría estar comprometido. Y recuerda que bloquear los módulos del núcleo no revierte los cambios que un atacante ya haya realizado en la caché de páginas.

El lugar que ocupa el aikido

La mayoría de los escaneos se detienen en la imagen o en el repositorio. Dirty Frag se encuentra un nivel más abajo, en el núcleo desde el que realmente arranca el nodo.

Aikido Security escaneo de máquinas virtuales lee lo que está realmente instalado en el host en ejecución a partir de una instantánea en la nube, por lo que un paquete del núcleo vulnerable aparece como un hallazgo del host. Como además vincula los hosts con las cargas de trabajo y las cuentas que se ejecutan en ellos, puedes ver el alcance del impacto si se compromete un nodo.

En el caso de los servidores en la nube conectados a Aikido, escaneo de máquinas virtuales muestra aquellos que contienen el paquete del kernel vulnerable e indica qué cargas de trabajo se ejecutan en ellos. La solución es la misma: aplicar el parche al kernel del nodo y comprobar la versión cargada tras el reinicio.

{{cta}}

Preguntas frecuentes

¿Qué CVE forman parte de Dirty Frag?

El conjunto actual de «Dirty Frag» incluye el CVE-2026-43284 en IPsec/XFRM ESP, el CVE-2026-43500 en RxRPC y el CVE-2026-46300, la variante «Fragnesia», en la gestión de fragmentos de XFRM ESP-in-TCP.

¿Se puede explotar de forma remota el CVE-2026-43284?

La explotación comienza con la capacidad de ejecutar código localmente como usuario o carga de trabajo con privilegios reducidos. Una vulnerabilidad remota, una cuenta SSH robada o un contenedor comprometido pueden proporcionar ese primer punto de acceso, tras lo cual Dirty Frag puede facilitar la escalada a privilegios de root.

¿Puede «Dirty Frag» escape afectar a Kubernetes o a Docker?

Un núcleo de host vulnerable puede permitir la escalada a nivel de nodo desde un contenedor cuando la carga de trabajo puede acceder a la funcionalidad necesaria del núcleo. Seccomp, la configuración de seguridad de los pods, las restricciones de los espacios de nombres y la distribución de los nodos influyen en la accesibilidad práctica.

¿Se soluciona el problema de «Dirty Frag» al volver a compilar una imagen de contenedor?

No. El código afectado se ejecuta en el núcleo del host. Aplica el parche y vuelve a cargar el núcleo en el nodo; a continuación, comprueba que los nodos antiguos y las plantillas de máquina ya no estén gestionando cargas de trabajo. Proteger el contenido real de tus imágenes es una tarea aparte.

Compartir:

https://www.aikido.dev/blog/dirty-frag-cve-2026-43284

<script type="application/ld+json">
{
 "@context": "https://schema.org",
 "@graph": [
   {
     "@type": ["BlogPosting", "TechArticle"],
     "@id": "https://www.aikido.dev/blog/dirty-frag-cve-2026-43284#article",
     "isPartOf": { "@id": "https://www.aikido.dev/blog/dirty-frag-cve-2026-43284#webpage" },
     "mainEntityOfPage": { "@id": "https://www.aikido.dev/blog/dirty-frag-cve-2026-43284#webpage" },
     "headline": "Dirty Frag (CVE-2026-43284): the Linux kernel bug that turns read access into root",
     "description": "Dirty Frag lets a local attacker turn low-privileged Linux access into root. See the affected CVEs, container risk, exposure checks and fixes.",
     "datePublished": "2026-09-04",
     "dateModified": "2026-09-04",
     "wordCount": 1250,
     "timeRequired": "PT6M",
     "inLanguage": "en-US",
     "articleSection": "Malware & CVEs",
     "author": { "@id": "https://www.aikido.dev/authors/nicholas-thomson#person" },
     "publisher": { "@id": "https://www.aikido.dev/#organization" },
     "image": { "@id": "https://www.aikido.dev/blog/dirty-frag-cve-2026-43284#primaryimage" },
     "keywords": [
       "Dirty Frag",
       "CVE-2026-43284",
       "CVE-2026-43500",
       "CVE-2026-46300",
       "Fragnesia",
       "Linux kernel privilege escalation",
       "local privilege escalation",
       "container escape",
       "Kubernetes security",
       "page cache",
       "IPsec ESP",
       "RxRPC",
       "XFRM",
       "kernel patching"
     ],
     "about": [
       { "@type": "Thing", "name": "Dirty Frag" },
       { "@type": "Thing", "name": "Linux kernel local privilege escalation" },
       { "@type": "Thing", "name": "Linux kernel vulnerability" }
     ],
     "mentions": [
       { "@type": "Thing", "name": "CVE-2026-43284", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-43284" },
       { "@type": "Thing", "name": "CVE-2026-43500", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-43500" },
       { "@type": "Thing", "name": "CVE-2026-46300", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-46300" },
       { "@type": "Thing", "name": "Linux kernel" },
       { "@type": "Thing", "name": "IPsec ESP" },
       { "@type": "Thing", "name": "RxRPC" },
       { "@type": "Thing", "name": "Andrew File System" },
       { "@type": "Thing", "name": "page cache" },
       { "@type": "Thing", "name": "Kubernetes" },
       { "@type": "Thing", "name": "Docker" },
       { "@type": "SoftwareApplication", "name": "Aikido Security VM Scanning", "applicationCategory": "SecurityApplication", "url": "https://www.aikido.dev/cloud/virtual-machine-scanning" },
       { "@type": "SoftwareApplication", "name": "Aikido Container Image Scanning", "applicationCategory": "SecurityApplication", "url": "https://www.aikido.dev/code/container-image-scanning" }
     ],
     "speakable": {
       "@type": "SpeakableSpecification",
       "cssSelector": ["h1", "h2"]
     }
   },
   {
     "@type": "WebPage",
     "@id": "https://www.aikido.dev/blog/dirty-frag-cve-2026-43284#webpage",
     "url": "https://www.aikido.dev/blog/dirty-frag-cve-2026-43284",
     "name": "Dirty Frag (CVE-2026-43284): the Linux kernel bug that turns read access into root",
     "description": "Dirty Frag lets a local attacker turn low-privileged Linux access into root. See the affected CVEs, container risk, exposure checks and fixes.",
     "inLanguage": "en-US",
     "isPartOf": { "@id": "https://www.aikido.dev/#website" },
     "primaryImageOfPage": { "@id": "https://www.aikido.dev/blog/dirty-frag-cve-2026-43284#primaryimage" },
     "breadcrumb": { "@id": "https://www.aikido.dev/blog/dirty-frag-cve-2026-43284#breadcrumb" },
     "datePublished": "2026-09-04",
     "dateModified": "2026-09-04"
   },
   {
     "@type": "ImageObject",
     "@id": "https://www.aikido.dev/blog/dirty-frag-cve-2026-43284#primaryimage",
     "url": "https://www.aikido.dev/blog/dirty-frag-cve-2026-43284/hero.png",
     "caption": "Dirty Frag (CVE-2026-43284): the Linux kernel bug that turns read access into root"
   },
   {
     "@type": "BreadcrumbList",
     "@id": "https://www.aikido.dev/blog/dirty-frag-cve-2026-43284#breadcrumb",
     "itemListElement": [
       { "@type": "ListItem", "position": 1, "name": "Home", "item": "https://www.aikido.dev" },
       { "@type": "ListItem", "position": 2, "name": "Blog", "item": "https://www.aikido.dev/blog" },
       { "@type": "ListItem", "position": 3, "name": "Dirty Frag (CVE-2026-43284)", "item": "https://www.aikido.dev/blog/dirty-frag-cve-2026-43284" }
     ]
   },
   {
     "@type": "WebSite",
     "@id": "https://www.aikido.dev/#website",
     "url": "https://www.aikido.dev",
     "name": "Aikido Security",
     "publisher": { "@id": "https://www.aikido.dev/#organization" },
     "inLanguage": "en-US"
   },
   {
     "@type": "Organization",
     "@id": "https://www.aikido.dev/#organization",
     "name": "Aikido Security",
     "url": "https://www.aikido.dev",
     "logo": {
       "@type": "ImageObject",
       "url": "https://www.aikido.dev/logo.png"
     },
     "sameAs": [
       "https://www.linkedin.com/company/aikido-security",
       "https://x.com/AikidoSecurity"
     ]
   },
   {
     "@type": "Person",
     "@id": "https://www.aikido.dev/authors/nicholas-thomson#person",
     "name": "Nicholas Thomson",
     "url": "https://www.aikido.dev/authors/nicholas-thomson",
     "jobTitle": "Senior SEO & Growth Lead",
     "worksFor": { "@id": "https://www.aikido.dev/#organization" },
     "sameAs": [
       "https://www.linkedin.com/in/nicholas-gray-thomson/"
     ]
   },
   {
     "@type": "FAQPage",
     "@id": "https://www.aikido.dev/blog/dirty-frag-cve-2026-43284#faq",
     "isPartOf": { "@id": "https://www.aikido.dev/blog/dirty-frag-cve-2026-43284#webpage" },
     "mainEntity": [
       {
         "@type": "Question",
         "name": "Which CVEs are part of Dirty Frag?",
         "acceptedAnswer": {
           "@type": "Answer",
           "text": "The current Dirty Frag set contains CVE-2026-43284 in IPsec/XFRM ESP, CVE-2026-43500 in RxRPC, and CVE-2026-46300, the Fragnesia variant, in XFRM ESP-in-TCP fragment handling."
         }
       },
       {
         "@type": "Question",
         "name": "Is CVE-2026-43284 remotely exploitable?",
         "acceptedAnswer": {
           "@type": "Answer",
           "text": "Exploitation begins with the ability to run code locally as a low-privileged user or workload. A remote vulnerability, stolen SSH account, or compromised container can provide that first foothold, after which Dirty Frag can supply root escalation."
         }
       },
       {
         "@type": "Question",
         "name": "Can Dirty Frag escape Kubernetes or Docker?",
         "acceptedAnswer": {
           "@type": "Answer",
           "text": "A vulnerable host kernel can make node-level escalation possible from a container when the workload can reach the required kernel functionality. Seccomp, pod security settings, namespace restrictions, and the node distribution all change practical reachability."
         }
       },
       {
         "@type": "Question",
         "name": "Does rebuilding a container image fix Dirty Frag?",
         "acceptedAnswer": {
           "@type": "Answer",
           "text": "No. The affected code runs in the host kernel. Patch and reload the kernel on the node, then verify that old nodes and machine templates are no longer serving workloads. Securing what's actually inside your images is a separate job."
         }
       }
     ]
   }
 ]
}
</script>

Suscríbete para recibir noticias

4.7/5
¿Cansado de los falsos positivos?

Prueba Aikido como otros 100k.
Empiece ahora
Obtenga un recorrido personalizado

Con la confianza de más de 100k equipos

Reservar ahora
Escanee su aplicación en busca de IDORs y rutas de ataque reales

Con la confianza de más de 100k equipos

Empezar a escanear
Vea cómo el pentesting de IA prueba su aplicación

Con la confianza de más de 100k equipos

Empezar a probar
Detecta los hosts vulnerables antes de que lo haga un atacante

El « escaneo de máquinas virtuales » de Aikido detecta paquetes del núcleo vulnerables en los equipos en los que se ejecuta

Pruébalo gratis

Asegura tu plataforma ahora

Protege tu código, la nube y el entorno de ejecución en un único sistema central.
Encuentra y corrije vulnerabilidades de forma rápida y automática.

No se requiere tarjeta de crédito | Resultados del escaneo en 32 segundos.