Gmail Cross Site Scripting

El dia de hoy les traigo un pequeño descubrimiento, una vulnerabilidad en el sistema de Presentaciones (para los burros, powerpoint) en linea de Google Mail. El problema es sencillo, y no le tomara mucho tiempo arreglar a los de Mountain View, pero hay algo que me preocupa más. Describire el problema de Gmail rapidamente para poder pasar al detalle del plugin de flash.

Google Slideshows no esta filtrando los hipervinculos de las presentaciones cuyo destino es una URI javascript:, con solo crear un simple enlace, colocarle como destino javascript:alert(1) e insertarlo en la presentacion, es posible ejecutar javascript en el contexto de mail.google.com. Para los que quieran verlo en funcionamiento he preparado un sencillo poc que envia las cookies a un sitio remoto (que no existe), tendrian que enviarse este archivo por correo, y luego verlo en modo de Presentacion desde Gmail.

Aqui es donde entra el detalle, estos enlaces son creados como objetos tipo flash, y son llamados para abrirse en una ventana nueva, mediante el parametro ‘_blank’. Aparentemente cada navegador maneja de manera distinta y son los culpables de este problema. Por ejemplo con este archivo, al clickear el recuadro que enlaza a javascript:alert(document.domain), Firefox, aunque abre una nueva ventana con el contexto about:blank, internamente no actualiza el contexto de ejecucion por completo y es posible acceder a ciertos objetos del DOM (document.cookie, document.domain) pero no a otros (XMLHttpRequest). Opera por otra parte, crea la nueva ventana, pero al ejecutar la javascript uri, lo realiza en la misma ventana donde se origino el evento, comprometiendo completamente el contexto del sitio que hostea el objeto flash. En versiones anteriores de IE, el comportamiento era, abrir una nueva ventana, y el javascript se ejecutaba correctamente como about:blank, pero en las mas recientes, aparece una nueva ventana, y se cierra instantaneamente, sin poder saber que ocurre. En safari el comportamiento es distinto, el navegador aparentemente intenta cargar una pelicula al clickear el recuadro, y queda vacio, pero no ejecuta el javascript.

Actualización: HaDeS preparo y publico un pequeño video en youtube demostrando la falla, y Google ha deshabilitado temporalmente esta caracteristica mientras solucionan el problema.

Cada vez más cerca Firefox 3

Ya se encuentra disponible la beta 5 del que considero es, el mejor navegador libre (no, no he usado nada basado en webkit todavia). Entre las nuevas caracteristicas que vienen con el lanzamiento de esta version sobresalen:

  • Mejoras en el uso de memoria: Es algo que se puede sentir sin la necesidad de usar algun tipo de benchmarks. Esta clase de progreso ayuda especialmente a escritorios como Gnome, que para ser sinceros es algo mas exigente con respecto al hardware que otras alternativas libres, pero aun asi, es (y probablemente seguira siendo) uno de los Desktop Environments mas usados. Y pone a Firefox a competir directamente con otros como Opera, y Safari.
  • Interfaz grafica integrada con el Sistema operativo: Me gusta especialmente el trabajo que se ha hecho en la version de Linux, en la cual, Firefox utilizara los iconos del tema de nativo de GTK, para sus barras de herramientas y menues.
  • Estandares W3: La prueba Acid2 pasada completamente y el resultado de la Acid3 mejora considerablemente con respecto a Firefox 2.
  • Barra de direcciones inteligente.

Según informacion entregada por Mozilla, la version final estaría disponible para el mes de junio. Jugueteando con el navegador, me di cuenta que existe un problema de seguridad en todas las versiones del Firefox 3, es una regresion de un bug reportado hace mas de 3 años por Michael Krax, el cual afecta las plataformas Windows, personalmente no considero que sea peligroso. Lo reporte a Mozilla, y ya tienen disponible un patch en trunk, el proximo release ya deberia venir con este problema corregido. Un detalle que no me gusta de Firefox 3, es el hecho que la barra de direcciones ahora muestra la URL despues de haberla ‘urldecodeado’, y si somos de los que jugamos con las URLs manualmente, esto puede ser un inconveniente.

Firefox 2.0.0.10 released

Mozilla Corporation just released Firefox 2.0.0.10 which includes fixes against JAR uri attacks. This issue affected browsers that used Gecko engine, a quick check showed me that only K-meleon browser was also updated, however there are several Gecko based web browsers that need to get fixed: Gecko-based browsers.

Update: Let’s make that, Firefox 2.0.0.11, which also fixes some regressions.