Cross Scripting XSS en Jsquery 1.6

Domingo, 11 Septiembre 2011


Se ha arreglado una vulnerabilidad que permitía realizar ataques cross
site scripting (XSS ) en jQuery 1.6. La vulnerabilidad podía ser
explotada en ciertos sitios que utilizaran la variable 'location.hash'
en un contexto que no fuera el de Cascading Style Sheets (CSS).

jQuery es una biblioteca o framework JavaScript de software libre y
código abierto. Es compatible con la mayoría de navegadores actuales y
ofrece una serie de funcionalidades basadas en JavaScript que de otra
manera requerirían muchas líneas de código. Así, permite simplificar la
manera de interactuar con los documentos HTML, manipular el árbol DOM,
manejar eventos, desarrollar animaciones y agregar interacción con la
técnica AJAX a páginas web.

El error se produce cuando se introduce el símbolo '#' en la URL
seguido del código que se desee inyectar, puesto que jQuery espera
(erróneamente) que la cadena que se va a encontrar a continuación sea
código CSS. Debido a esto no realizan las comprobaciones necesarias para
limpiar el contenido de la variable 'location.hash'. Al parecer es una
costumbre bastante extendida en algunas webs, utilizar el contenido de
esta variable para fines diferentes a los originales (para ser insertada
en código CSS). Es el caso de evernote.com o skype.com, entre otras. Por
esto, se ha optado en la solución por que sea el propio jQuery el que
filtra el código HTML que pueda ser incrustado a través de esta
variable, y no delegar esta responsabilidad a todos los programadores
que vayan a utilizarla.

La vulnerabilidad, que era funcional en Internet Explorer, Firefox,
Chrome y Opera, se ha arreglado en la versión 1.6.3 de jQuery. Los
usuarios del navegador Safari no se veían afectados porque este
navegador se encargaba de codificar el contenido de esta variable
mediante el símbolo de porcentaje '%'.



Changelog jQuery 1.6.3
http://blog.jquery.com/2011/09/01/jquery-1-6-3-released/

Bug XSS
http://bugs.jquery.com/ticket/9521

Ejemplo de XSS y explicación de cómo filtrar esta variable
http://ma.la/jquery_xss/

 

Via: Hispasec

One&One

SEMrush

Visitanos en: