Bad Epoll: se ha encontrado una vulnerabilidad en Linux y Android que permite obtener acceso root


1

Se ha descubierto una vulnerabilidad en el núcleo de Linux Bad Epoll, registrada como CVE-2026-46242. Permite a un usuario local normal, sin privilegios especiales, elevar sus privilegios a root. Según el autor de la investigación, Jaeon Chong, el problema afecta no solo a escritorios y servidores Linux, sino también a algunos dispositivos Android en nuevas versiones del kernel — esto se subraya en la descripción de Bad Epoll.

El error se encuentra en el subsistema epoll — el mecanismo estándar de Linux para rastrear múltiples descriptores de archivos, conexiones de red y eventos de entrada/salida. Tales mecanismos son utilizados activamente por servidores, navegadores y servicios en red, por lo que no se puede simplemente desactivar epoll. En el análisis técnico la vulnerabilidad se describe como una condición de carrera, que lleva a use-after-free: cuando se cierran simultáneamente objetos epoll relacionados, un hilo libera estructuras internas, mientras que otro sigue accediendo a ellas.

Para ser más precisos, el problema se manifiesta cuando un descriptor epoll supervisa a otro y ambos descriptores se cierran de manera paralela. Después de llamar a __ep_remove(), el campo file->f_ep se pone temporalmente a cero, y el competidor __fput() puede decidir que la limpieza adicional ya no es necesaria. Como resultado, el objeto struct eventpoll o el struct file asociado se libera demasiado pronto, pero el código sigue trabajando con punteros a memoria ya liberada. Esto le proporciona al atacante una primitiva para dañar la memoria del kernel.

No se necesitan capacidades adicionales para el ataque ni se requieren espacios de nombres de usuario — solo es suficiente tener CONFIG_EPOLL, lo que hace que el problema sea especialmente molesto para sistemas Linux comunes. Según el informe preliminar del investigador, el bug fue introducido en el kernel con el commit 58c9b016e128 en 2023, y corregido con el commit a6dc643c693.

A pesar de tener una ventana de carrera muy estrecha, el investigador preparó un exploit funcional para Google kernelCTF. En la descripción de la explotación se muestra cómo el error se convierte en una escritura de 8 bytes en una estructura liberada, luego en una fuga de memoria del kernel a través de /proc/self/fdinfo, interceptando file->f_op->poll y una cadena ROP para obtener root. Para el objetivo lts-6.12.67 se ha informado de una fiabilidad de alrededor del 99%, para COS — alrededor del 98%; el exploit para Android, según el autor, todavía está en desarrollo.

Están en riesgo los kernels basados en la rama 6.4 y posteriores, si no se ha trasladado la corrección a ellos. Los antiguos dispositivos Android en kernels 6.1, incluidos Pixel 8 y modelos similares, el autor considera que son inmunes. La única opción de protección normal que les queda a los usuarios y administradores es instalar la actualización del núcleo de su distribución o del proveedor del dispositivo.

Fuente: linux.org.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster