No hay XSS en el código pegado. Esto solo está configurando el hash de la URL
por ejemplo https://example.com/foo/1#var/1
utilizando el objeto location
. XSS solo puede ocurrir cuando algo en un documento HTML está configurado sin la codificación adecuada.
Tenga en cuenta que esta respuesta se basa únicamente en el código publicado y no se hacen suposiciones acerca de dónde se usará el hash posteriormente. Si el uso del hash da lugar a una vulnerabilidad, la vulnerabilidad reside aquí y no en el código publicado.
El motivo de esto es que la aplicación está procesando la entrada del usuario como si fuera de confianza. Si el código anterior podría crear un hash peligroso, entonces un atacante también podría crear el hash peligroso sin usar el código publicado exactamente de la misma manera que un el ataque XSS reflejado funciona. p.ej. el atacante consigue que el usuario visite una URL especialmente diseñada como
https://example.com/foo/1#<script>alert('xss')</script>
para desencadenar el ataque. Es hasta el código de procesamiento de hash para hacer frente a esto, no el código que genera el hash.