Día 0.0.0.0: Un fallo del navegador de hace 18 años afecta a Linux y macOS
El equipo de investigación de Oligo Security ha descubierto recientemente una vulnerabilidad crítica denominada "0.0.0.0 Day" que afecta a los navegadores Chromium, Firefox y Safari en sistemas macOS y Linux. Esta vulnerabilidad permite a los sitios web maliciosos eludir los protocolos de seguridad estándar de los navegadores e interactuar con los servicios que se ejecutan en la red local de una organización. No afecta a los dispositivos Windows.
Anatomía del día 0.0.0.0
La causa fundamental de la vulnerabilidad "Día 0.0.0.0" radica en la aplicación incoherente de los mecanismos de seguridad en los distintos navegadores y en la falta de normalización en el sector. La dirección IP 0.0.0.0, a menudo percibida como inocua, puede ser utilizada como arma por los atacantes para explotar servicios locales, incluidos los utilizados para el desarrollo, los sistemas operativos y las redes internas.
La vulnerabilidad resulta especialmente peligrosa porque permite a los sitios web públicos (como los que tienen dominios .com) comunicarse con servicios que se ejecutan en la red local de un usuario (localhost). Sustituyendo 0.0.0.0 por el más comúnmente utilizado localhost o 127.0.0.1, los atacantes pueden ejecutar potencialmente código arbitrario en la máquina del visitante.
Esta vulnerabilidad, de la que ya se informó en 2008, sigue sin resolverse en los principales navegadores, como Chrome, Firefox y Safari, lo que pone en peligro a millones de usuarios. Los atacantes han aprovechado activamente esta vulnerabilidad para atacar servicios locales, lo que demuestra el impacto y el peligro de este fallo en el mundo real.
Respuestas del navegador
En respuesta a la vulnerabilidad 0.0.0.0 Day, los desarrolladores de navegadores han tomado medidas para mitigar el riesgo, pero la complejidad del problema hace que la vulnerabilidad siga siendo explotable mientras tanto.
Google Chrome y navegadores basados en Chromium
Google ha liderado la carga con su iniciativa Private Network Access (PNA), destinada a impedir que los sitios web accedan a IP privadas como 127.0.0.1 a través de JavaScript cuando se cargan desde sitios web públicos. Sin embargo, la vulnerabilidad 0.0.0.0 Day logró eludir el mecanismo PNA en Chromium, haciéndolo ineficaz contra esta amenaza específica.
Tras el informe de Oligo Security, Google anunció que bloquearía el acceso a 0.0.0.0 a partir de la versión 128 de Chromium. Este cambio se aplicará gradualmente en las próximas versiones, y se espera que Chrome 133 lo implemente por completo, momento en el que la dirección IP se bloqueará por completo para todos los navegadores Chrome y Chromium.
Safari de Apple
Safari de Apple, que se basa en el motor WebKit de código abierto, también ha tomado medidas para hacer frente a la vulnerabilidad 0.0.0.0 Day. En respuesta al informe, Apple introdujo cambios de última hora en WebKit, añadiendo una comprobación para bloquear las peticiones si la dirección IP del host de destino es todo ceros. Estos cambios forman ahora parte del código fuente de WebKit, lo que reduce significativamente el riesgo de explotación para los usuarios de Safari.
Mozilla Firefox
La respuesta de Mozilla Firefox a la vulnerabilidad 0.0.0.0 Day ha sido menos inmediata. A diferencia de Chrome y Safari, Firefox nunca ha restringido el Acceso a Redes Privadas (PNA), lo que significa que técnicamente siempre ha sido susceptible a este tipo de ataque. Sin embargo, tras la revelación, Mozilla ha dado prioridad a la implementación de PNA y ha cambiado la especificación fetch para bloquear 0.0.0.0.
Aunque se está realizando una corrección, no hay una solución inmediata disponible para los usuarios de Firefox. En algún momento en el futuro, Firefox bloqueará la versión 0.0.0.0, pero el calendario para esta actualización sigue siendo incierto.
Conclusión
Los navegadores están intrínsecamente diseñados para enviar peticiones a casi cualquier servidor HTTP utilizando Javascript. Cuando se gestiona una respuesta de sitio cruzado, los mecanismos de seguridad del navegador deciden la acción apropiada: si propagar los datos de respuesta al contexto de JavaScript o devolver una respuesta enmascarada o un error.
Sin embargo, con la vulnerabilidad 0.0.0.0 Day, una sola petición es suficiente para causar daños significativos, eludiendo por completo estas medidas de seguridad. El impacto de esta vulnerabilidad es de gran alcance, afectando tanto a individuos como a organizaciones al exponer los servicios locales a amenazas externas.
Las fuentes de este artículo incluyen un artículo de BleepingComputer.