
Exploit de escalada de privilegios del kernel de Linux para CVE-2026-46242, una condición de carrera de use-after-free en epoll, con root fiable al 99 % en escritorios, servidores y dispositivos Android.

Un proceso sin privilegios escalando a root en Google kernelCTF.
Bad Epoll (CVE-2026-46242) es un use-after-free por condición de carrera en el subsistema epoll del kernel de Linux. Este error permite que un proceso sin privilegios se convierta en root, no solo en escritorios y servidores Linux, sino también en dispositivos Android.
Bad Epoll fue reportado y explotado por Jaeyoung Chung como un envío de 0-day a Google kernelCTF, que recompensa un exploit del kernel de Linux con $71,337+. El envío de Bad Epoll recibió una recompensa de $92,337.
[!NOTE] La IA de Anthropic, Mythos, encontró otro error de carrera en el mismo código de epoll, pero pasó por alto Bad Epoll.
Un error poco común que puede rootear Android. La mayoría de los errores de escalada de privilegios en Linux no pueden rootear Android en absoluto. Copy Fail y sus variantes, por ejemplo, necesitan módulos que Android nunca carga. De las aproximadamente 130 vulnerabilidades explotadas en el kernelCTF de Google, solo unas diez son candidatas para rootear Android. Bad Epoll es una de ellas.
Sin interruptor de apagado. Copy Fail y sus variantes pueden neutralizarse descargando sus módulos vulnerables, pero epoll no tiene esa opción. Es una característica central del kernel de la que dependen el sistema operativo, los servicios de red y los navegadores. La única forma de solucionarlo es aplicar el parche.
Ventana de carrera diminuta, pero el ataque es 99% fiable. La ventana de carrera del error es de solo unas seis instrucciones de ancho, y un intento normal casi nunca la alcanza. El exploit amplía esa ventana y ejecuta un bucle de reintentos que nunca provoca un crash del kernel. El resultado es un exploit 99% fiable, como describe la descripción general del ataque a continuación.
Un único commit en 2023 introdujo dos condiciones de carrera separadas en el código de epoll, de solo unas 2,500 líneas en total. Ambas resultaron ser errores críticos que pueden conducir a escalada de privilegios.
El primero fue encontrado por Mythos de Anthropic y reportado como CVE-2026-43074, con detalles en el informe público de Anthropic, ANT-2026-CM0TCREP. Ese resultado es impresionante por sí solo, porque los errores de carrera del kernel son conocidos por ser difíciles de encontrar. Demostró la capacidad de un modelo de IA de frontera para encontrar errores de carrera. Un investigador independiente más tarde envió un exploit 1-day para él a kernelCTF.
La otra carrera es Bad Epoll, que Mythos pasó por alto. Dado que Mythos encontró el primer error en esta pequeña ruta de código de epoll, es probable que examinara la misma área con una profundidad significativa. No podemos saber exactamente por qué pasó por alto Bad Epoll, pero dos factores probablemente lo hicieron difícil de encontrar.
La ventana de carrera es diminuta. Es de solo unas seis instrucciones de ancho, por lo que la intercalación exacta de hilos es difícil de imaginar incluso al observar el código vulnerable.
Había poca evidencia en tiempo de ejecución. Después de que CVE-2026-43074 se corrige, el use-after-free de Bad Epoll normalmente no activa KASAN, el principal detector de errores de memoria del kernel. Sin esa señal, Mythos puede que no haya tenido suficiente confianza para reportarlo como un error real.
Bad Epoll también fue difícil de corregir. El primer parche de los mantenedores no solucionó completamente el problema, y un parche correcto llegó solo dos meses después de que el error fuera reportado por primera vez. Eso es mucho tiempo para un kernel que normalmente maneja los problemas de seguridad con urgencia.
En general, Bad Epoll muestra lo difíciles que son las condiciones de carrera en cada etapa. Son difíciles de encontrar incluso para un modelo de frontera, difíciles de corregir correctamente y, como muestra la siguiente sección, difíciles de explotar de forma fiable. También sugiere una dirección de investigación de vulnerabilidades que sigue valiendo la pena explorar en presencia de modelos de IA de frontera: descubrir el impacto de seguridad real detrás de condiciones de temporización estrechas y evidencia débil.
[!NOTE] Los investigadores independientes Qi Tang y Junxi Qian también reportaron CVE-2026-43074 al equipo del kernel de Linux el 30 de marzo de 2026, el mismo día que Anthropic. Sus nombres fueron omitidos inadvertidamente de los créditos por la corrección upstream. Gracias a Guidong Han por señalar estos informes independientes. Los tres investigadores más tarde encontraron otro use-after-free por condición de carrera en epoll.
Aquí hay una descripción general de alto nivel del ataque, para los curiosos.
Dos objetos epoll enlazados. Cerrar ambos a la vez desencadena la carrera.
Dos de las rutas de cierre de epoll se ejecutan al mismo tiempo y colisionan. Una libera un objeto mientras la otra todavía está escribiendo en él, y eso es el use-after-free (UAF).
La ventana de carrera, y cómo el exploit la impulsa.
El exploit utiliza cuatro objetos epoll agrupados en dos pares. Un par desencadena la carrera, mientras que el otro se convierte en la víctima. A partir de ahí, el exploit convierte la escritura UAF de 8 bytes en un UAF sobre un objeto file, y utiliza un ataque cross-cache para controlar completamente el contenido del file.