Mozilla ha publicado la actualización de emergencia Firefox 151.0.3, que corrige la vulnerabilidad CVE-2026-10702 de alta gravedad en el compilador JIT del navegador. El fallo afecta a las versiones estables de Firefox de la 147 a la 151.0.2 y permite ejecutar código arbitrario en el proceso de renderizado con tan solo visitar una página web maliciosa, sin necesidad de ninguna acción adicional por parte del usuario. La situación se agrava por el hecho de que la empresa de investigación Nebula Security ya ha publicado un exploit funcional, aunque, a fecha de 28 de julio de 2026, no se han registrado casos confirmados de explotación en ataques reales.
Esencia técnica de la vulnerabilidad
La raíz del problema, según el análisis técnico de Nebula Security, se encuentra en la operación MObjectToIterator cuando se ejecuta con el flag skipRegistration = true. El compilador JIT de Firefox convierte el JavaScript que se ejecuta con frecuencia en código máquina nativo y, para funcionar correctamente, debe rastrear qué operaciones pueden modificar la memoria.
Firefox clasificó erróneamente esta operación como una operación de lectura, aunque la resolución «perezosa» de una propiedad de objeto puede provocar la asignación de un nuevo búfer de slots dinámicos y la liberación del anterior. La optimización de numeración global de valores (Global Value Numbering) consideró redundante volver a cargar el puntero al búfer de slots y reutilizó un puntero obtenido previamente, ya después de que hubiera sido invalidado por el entorno de ejecución. El resultado es la clásica situación de uso de memoria ya liberada (use-after-free).
El código vulnerable se introdujo en el marco del Bug 1995077 y apareció por primera vez en Firefox 147. El análisis del código fuente confirma que la redefinición incorrecta de alias está presente en Firefox 151.0.2 y ausente en Firefox 151.0.3.
Versiones afectadas y no afectadas
- Afectadas: Firefox 147 – 151.0.2 (versiones estables)
- Corregido en: Firefox 151.0.3
- No afectadas: Firefox ESR 140.12: el código vulnerable no está presente en el código fuente de la rama ESR; Mozilla no menciona ESR en el boletín de seguridad
La corrección a nivel de código elimina la gestión personalizada de alias «solo lectura» de ObjectToIterator y ajusta la operación de iterador relacionada, evitando que el optimizador conserve un puntero obsoleto.
Exploit público y cadena IonStack
Nebula Security utilizó CVE-2026-10702 como primera etapa de una cadena de exploits denominada IonStack, dirigida a un dispositivo ARM64 con Android 17. El exploit publicado intercepta la asignación liberada, extrae un puntero a la hidden class, crea un objeto falso y corrompe un Uint8Array para obtener lectura y escritura arbitrarias en memoria. En Android, el código modifica después los permisos de acceso a memoria y redirige el punto de entrada de una función WebAssembly al shellcode ARM64.
Según los investigadores, el código publicado contiene offsets para Firefox 151.0 en una build concreta de ARM64 Android 17; sin embargo, la vulnerabilidad del navegador no está ligada a la arquitectura ARM. Nebula Security describe el camino de explotación en x86 como más estable, aunque la cadena completa para esta arquitectura aún no está finalizada.
La segunda etapa de la cadena IonStack es CVE-2026-43499, una vulnerabilidad en la subsistema futex del kernel de Linux, a la que Nebula denomina GhostLock. Esta etapa proporciona elevación de privilegios hasta root en la build objetivo de Android. Según los investigadores, GhostLock se invoca directamente desde Firefox, y la sandbox más débil de Android simplifica la explotación; al mismo tiempo, en opinión de Nebula, una sandbox de escritorio más estricta no habría impedido necesariamente el ataque. Debe señalarse que esta valoración procede de una única fuente de investigación y no está confirmada por el proveedor.
Evaluación del impacto
Los usuarios de Firefox en todas las plataformas que utilicen las versiones 147–151.0.2 están expuestos al mayor riesgo. La existencia de un exploit público reduce significativamente la barrera de entrada para posibles atacantes, a pesar de que el código publicado esté dirigido a una build concreta de Android. La adaptación de la etapa del navegador a otras plataformas es una cuestión de esfuerzo de ingeniería y no de limitaciones de principio.
Según el análisis del código fuente, los usuarios de Firefox ESR 140.12 no están expuestos a esta vulnerabilidad. El estado de explotación en este momento es: PoC público disponible; ni Mozilla ni CISA informan de explotación activa en ataques reales.
Recomendaciones
- Actualice Firefox de inmediato a la versión 151.0.3 o posterior. La actualización elimina el punto de entrada a través del navegador.
- Compruebe la versión actual: abra
about:supporten la barra de direcciones de Firefox y asegúrese de que el número de versión no sea inferior a 151.0.3. - Usuarios de Android: actualicen Firefox a través de Google Play. Dada la existencia de una cadena completa de exploits para Android 17, los usuarios móviles se encuentran en una zona de mayor riesgo.
- Administradores de entornos corporativos: si se utiliza Firefox ESR 140.12, esta rama no se ve afectada por la vulnerabilidad. No obstante, conviene asegurarse de que ninguna de las instalaciones gestionadas utilice versiones estables dentro del intervalo 147–151.0.2.
- La actualización de Firefox no corrige CVE-2026-43499 (GhostLock): esta vulnerabilidad del kernel de Linux requiere un parche independiente a nivel de sistema operativo. Siga las actualizaciones de seguridad de Android y del kernel de Linux.
La publicación de un exploit funcional para CVE-2026-10702 convierte la actualización de Firefox a la versión 151.0.3 en una tarea prioritaria, especialmente en dispositivos Android, donde se ha demostrado una cadena completa desde la visita a una página web hasta la obtención de acceso root. Además, los usuarios de dispositivos móviles deben instalar todas las actualizaciones de seguridad disponibles del sistema operativo para cerrar la vulnerabilidad de kernel GhostLock.