Sólo 16 caracteres para crashear Chrome

La semana pasada Andris Atteka descubrió un fallo en Chrome:

"Recientemente informé de un error grave en Google Chrome (issue #533361). Este problema recuerda a la vulnerabilidad reciente de Skype ya que ambas se provocan mediante URLs sencillas. Así que ¿cómo se puede crashear Google Chrome? Mediante la adición de un carácter NULL en la cadena de la URL:

http://biome3d.com/%%30%30

Lamentablemente no obtuve recompensa ya que se consideró solamente una vulnerabilidad DOS. De todos modos, hacer software seguro es mucho más difícil que encontrar problemas en el mismo. Gracias Google
".

"This crashes someone’s browser in web gtalk/chrome if you msg them that URL https://t.co/vi0e10IEFH

    — mdowd (@mdowd) September 20, 2015


Los expertos de The Register publicaron la imagen de dos URLs que se podrían utilizar para crashear Chrome, los usuarios pueden ver como su navegador se cierra simplemente visualizándolas en una página, o viéndolas desde otra aplicación, como un cliente de correo electrónico, o pegándolas en la barra de direcciones.



Las direcciones URL anteriores desencadenan un punto de interrupción en lugar de explotar una vulnerabilidad de desbordamiento de búfer.

Las dos URLs funcionan en Chrome 45.0.2454.93 sobre OS X y Windows 10 y también en Opera 32.0 que se basa en Chromium 45. Los expertos también notificaron que Chromebooks se cierra al manejar estas URLs, por otro lado Chrome en Android parece ser inmune.

The Register proporciona un análisis detallado de la forma en que las direcciones URL afectan al navegador Chrome:

El %%300 al final de la URL es convertida a (0x30 es el código ASCII para '0'. El %%300 convierte esta cadena de caracteres: el "%" original, la conversión de los '0', y el original '0'. En conjunto, eso es ''). Esto pega un byte NULL al final de la dirección web.

Luego la URL es pasada a GURLToDatabaseURL() que llama a ReplaceComponents(). Esto hace que la URL se procese de nuevo, ya con el byte NULL. Al parsearse se detecta que este caracter no debe estar ahí y marca la URL como no válida. La ruta del código vuelve a GURLToDatabaseURL() que todavía espera que la URL sea válida, y llama a spec().

Pero la URL no es válida, lo cual es inesperado, y la función devuelve un DCHECK() que provoca el rescate del software, incluso en la última release. Al pasar el ratón por encima de la URL, la dirección web que está marcada como no válida, es enviada a otra parte del navegador que espera sólo direcciones válidas - causando el error en la pestaña.

El equipo de Chromium está trabajando para solucionar el problema.

Fuentes:
- A simple string to crash Google Chrome
- A string could be used to crash Google Chrome
- This string of 16 characters will crash Chrome
- Aw, Snap! This 16-Character String Can Crash Your Google Chrome

6 comentarios :

  1. Solo pasar el raton por encima del enlace y ... crash

    ResponderEliminar
  2. muy bueno. Felicitaciones.
    PD: Si mandas el enlace por web.whatsapp.com y luego pasas el puntero del mouse, se cae la pagina pero no se cierra el navegador

    ResponderEliminar
  3. Evidentemente por màs controles que realizen al programa, no pueden adaptarlo a la numerosa cantdad de disppsitivos del mercado. Lo importante es corregir los errores lo antes posible para que no se propaguen.

    ResponderEliminar
  4. Este comentario ha sido eliminado por el autor.

    ResponderEliminar