Está usted visitando una publicación en la hemeroteca de CSIRT-CV.
Para acceder al portal y contenido actual, visite https://www.csirtcv.gva.es
12/09/2011
jQuery és una biblioteca o framework JavaScript de programari lliure i codi obert. És compatible amb la majoria de navegadors actuals i ofereix una sèrie de funcionalitats basades en JavaScript que d'una altra manera requeririen moltes línies de codi. Així, permet simplificar la manera d'interactuar amb els documents HTML, manipular l'arbre DOM, manejar esdeveniments, desenrotllar animacions i agregar interacció amb la tècnica AJAX a pàgines web.
L'error es produeix quan s'introdueix el símbol '#' en la URL seguit del codi que es desitge injectar, ja que jQuery espera (erròniament) que la cadena que es va a trobar a continuació siga codi CSS. A causa d'açò no realitzen les comprovacions necessàries per a netejar el contingut de la variable 'location.hash'. Segons pareix és un costum prou estés en algunes webs, utilitzar el contingut d'aquesta variable per a fins diferents dels originals (per a ser inserida en codi CSS). És el cas d'evernote.com o skype.com, entre altres. Per açò, s'ha optat en la solució per que siga el propi jQuery el que filtra el codi HTML que puga ser incrustat a través d'aquesta variable, i no delegar aquesta responsabilitat a tots els programadors que vagen a utilitzar-la.
jQuery
Referències:None
Solució:La vulnerabilitat, que era funcional en Internet Explorer, Firefox, Chrome i Opera, s'ha arreglat en la versió 1.6.3 de jQuery. Els usuaris del navegador Safari no es veien afectats perquè aquest navegador s'encarregava de codificar el contingut d'aquesta variable mitjançant el símbol de percentatge '%'.
Notes: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