miércoles, 3 de septiembre de 2008

Si es version beta, por algo será...

Como todo el que haya navegado hoy con Google, habrá visto el enlace a su nuevo navegador, Google Chrome. Eso no es novedad.

Tampoco lo es, ya que hace varias semana que es publico, un bug para Google Chrome Browser 0.2.149.27, que provoca un DoS.

Esto es provocado al ir al siguiente enlace:
evil:%

Al poner esto en la barra de direcciones o al intentar dirigirse a esta dirección (Pincha aquí) la librería chrome.dll provoca una excepción no controlada por el manejador de excepciones. Por eso sale la ventana típica de: Debug | Send Report | Don't Send.

Si le damos a Debug, vemos como salta a una dirección cuyo contenido es INT3. Con razón que cause una excepción. Esto provoca que se lance el debuguer asignado como JIT.

Cuando salta el debuger, vemos esto:
01002FF0 /. PUSH EBP
01002FF1 |. MOV EBP,ESP
01002FF3 |. INT3
01002FF4 |. POP EBP
01002FF5 \. RETN

Esta parado en 01002FF3, como podemos ver luego restaura EBP y sale del CALL de manera correcta, el ret de la pila no es manipulable. Si seguimos vemos que se reinicia de nuevo el Chrome.

Con este pequeño análisis podíamos descartar la posibilidad de ejecutar código, ya que no se aprecia ningún Buffer Overflow, solo que al ser una versión beta, aun les queda por programar el manejador de excepciones para este trozo de código ;D Hale señores de Google, a currar que seguro que la versión estable es bastante buena.