Ataques XSS y JavaScript privilegiado: Vulnerabilidad en Firefox

Mozilla Firefox no protege adecuadamente de ataques XSS en el código JavaScript privilegiado usado internamente por el navegador, principalmente en su propia interfaz gráfica

Así­ es, hay código JavaScript privilegiado corriendo en los navegadores modernos. Tanto Google Chrome como Mozilla Firefox usan JavaScript en la programación de sus interfaces de usuario. Por privilegiado nos referimos a código que tiene acceso a las páginas abiertas en el navegador, el sistema de archivos… Hay distintos contextos de ejecución dentro del código privilegiado (algunos más restringidos que otros), siendo uno de los más interesantes por permitir introducir código externo es el de las extensiones del navegador.

En este caso, nos encontramos con una vulnerabilidad de Mozilla Firefox por no restringir la introducción de código JavaScript embebido en los documentos web que corren código privilegiado. Especí­ficamente, el llamado ‘chrome code’, que no es más que código JavaScript especialmente privilegiado usado en la interfaz gráfica de Firefox (en la barra de estado, los menús… A toda esta parte se le llama Chrome).

chromy.png

Separación entre contexto de ejecución JavaScript privilegiado (Chrome, interfaz gráfica de Firefox) y no privilegiado

(content, donde acostumbramos a que se ejecute JavaScript). Extraí­do de developer.mozilla.org.

Tras analizar superficialmente la vulnerabilidad, no está claro de qué forma serí­a explotable (sólo si la interfaz gráfica ya tiene una vulnerabilidad XSS). Los de Cisco afirman que basta con convencer a un usuario para que abra un link o un archivo especialmente diseñado. La descripción de la vulnerabilidad es especialmente vaga en cuanto a los términos de su explotación… Tras contactar con el investigador original de la vulnerabilidad, Johann Hofmann, éste nos confirma que la descripción es intencionalmente vaga, debido a que algunos usuarios tardan en actualizar. Dicho esto y viendo que los de Mozilla evalúan como crí­tica la vulnerabilidad , podemos imaginar que los de Cisco quizás no se equivoquen…

El parche a esta vulnerabilidad no se ha hecho esperar, y ya en la versión 58.0.1 está corregido el fallo. Según sus declaraciones, lo ideal serí­a usar CSP (polí­ticas de seguridad respecto al contenido de los documentos web, configurables) en una de sus configuraciones más estrictas, para evitar JavaScript embebido en los documentos web que corren «chrome code». Pero por desgracia, tienen bastante de ésto en el código fuente de Firefox, y no es plausible a corto plazo. Así­ que se conforman con sanear la creación de nuevas etiquetas HTML para que no contengan JavaScript embebido.

Es posible que todo esto te haya sonado a chino, y no es de extrañar. Un navegador web modernos es de las piezas más complejas en cuanto a ingenierí­a de software. Y lo tienes gratis, al alcance de tus dedos.

  • Arbitrary code execution through unsanitized browser UI

https://www.mozilla.org/en-US/security/advisories/…

  • An overview of the script security architecture in Gecko

https://developer.mozilla.org/en-US/docs/Mozilla/G…

  • MDN web docs: Add-ons

https://developer.mozilla.org/en-US/Add-ons

  • Chrome extensions: Overview

https://developer.chrome.com/extensions/overview

Fuente: blog.segu-info.com.ar

Compartir: