Parches 9521 y El 11290 hace varios años intenta mitigar este problema, aunque no pretende eliminar completamente la posibilidad de XSS. He estado ejecutando en jQuery 2.x algunos de los exploits que afirman que aún existen, pero no parecen estar funcionando, por lo que definitivamente no puedo confirmar y negar si el código que proporcionaste es suficiente para explotar.
Para lo que vale, también es posible que ocurra esta vulnerabilidad si haces algo con el objeto jQuery. Digamos que permitió a los clientes enviar HTML, y un cliente envió lo siguiente:
<div id="xss">alert('xss');<div>
Y por alguna loca razón, tenías el siguiente código en la página que muestra este HTML:
eval(jQuery(window.location.hash).text());
Un hash de URL de #xss
causaría que se active una alerta.
Así que puedo confirmar que esto es posible, aunque sería muy difícil explotarlo de esta manera en particular sin escribir el código específicamente para ser vulnerable.
Recomiendo hacer una verificación de validación en el valor de window.location.hash
o eliminar los caracteres especiales antes de pasarlo a jQuery()
, y como siempre, piense en lo que hace con el objeto jQuery.