La vulnerabilidad XSS en jQuery permite a los hackers desfigurar su sitio web fácilmente con una línea de código

Un equipo de especialistas de un curso de ingeniería inversa ha revelado el hallazgo de una vulnerabilidad en jQuery, la biblioteca multiplataforma de JavaScript que permite simplificar la manera de interactuar con documentos HTML, manipular el árbol DOM, manejar eventos, desarrollar animaciones y agregar interacción con la técnica AJAX a los sitios web.

Acorde al reporte, la explotación de esta vulnerabilidad permitiría a los actores de amenazas desplegar ataques de scripts entre sitios (XSS). A continuación se presenta una breve reseña de la vulnerabilidad reportada, además de su respectivo puntaje y clave de identificación según el Common Vulnerability Scoring System (CVSS).

La vulnerabilidad, identificada como CVE-2020-7656 existe debido a una insuficiente depuración de los datos proporcionados por el usuario dentro de la función load() y permitiría a los actores de amenazas desplegar ataques de scripts entre sitios.

Según los expertos del curso de ingeniería inversa, los hackers remotos podrían pasar código HTML especialmente diseñado a la aplicación objetivo y ejecutarlo en el navegador de la víctima en el contexto del sitio web afectado. Si la vulnerabilidad es explotada de forma remota, los actores de amenazas podrían extraer información potencialmente confidencial, modificar la apariencia del sitio web vulnerable, desplegar campañas de spear phishing, descargas arbitrarias, entre otros ataques. 

Si bien esta vulnerabilidad puede ser explotada por hackers maliciosos no autenticados, los expertos no han detectado la existencia de un exploit para desencadenar el ataque, aunque existe una prueba de concepto (disponible a continuación). 

index.html:

<html>
<head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.3/jquery.js"></script>
</head>
<body>
    <div id="mydiv"></div>
    <script>
        $("#mydiv").load('inject.html #himom');
    </script>
</body>
</html>
inject.html:

<div id="himom"><script>alert('Arbitrary Code Execution');</script ></div>

La vulnerabilidad está presente en las siguientes versiones de jQuery: 1.0, 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.1, 1.1.0, 1.1.1, 1.1.2, 1.1.3, 1.1.3.1, 1.1.4, 1.2, 1.2.0, 1.2.1, 1.2.2, 1.2.3, 1.2.4, 1.2.5, 1.2.6, 1.3, 1.3.0, 1.3.1, 1.3.2, 1.4, 1.4.0, 1.4.1, 1.4.2, 1.4.3, 1.4.4, 1.5, 1.5.0, 1.5.1, 1.5.2, 1.6, 1.6.0, 1.6.1, 1.6.2, 1.6.3, 1.6. 4, 1.7, 1.7.0, 1.7.1, 1.7.2, 1.8.0, 1.8.1, 1.8.2 y 1.8.3, mencionan los expertos del curso de ingeniería inversa.

Los desarrolladores de jQuery ya han lanzado un parche que corrige esta falla, disponible en sus plataformas oficiales. Por el momento no se  conocen soluciones alternativas, por lo que se recomienda a los administradores de implementaciones vulnerables actualizar lo antes posible. Mayores detalles sobre la vulnerabilidad podrían ser revelados cuando se considere que el riesgo de explotación ha sido mitigado.

Esta falla recibió un puntaje de 5.5/10 en la escala CVSS, lo que la convierte en una vulnerabilidad de severidad media, además de que la explotación es compleja. Para mayores informes sobre vulnerabilidades, exploits, variantes de malware y riesgos de seguridad informática puede ingresar al sitio web del Instituto Internacional de Seguridad Cibernética (IICS), al igual que a las plataformas oficiales de las compañías tecnológicas.