Vulnerabilidad en Vite (CVE-2024-45812)
Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-79
Neutralización incorrecta de la entrada durante la generación de la página web (Cross-site Scripting)
Fecha de publicación:
17/09/2024
Última modificación:
20/09/2024
Descripción
Vite es un framework de herramientas de compilación de interfaz para javascript. Se descubrió que las versiones afectadas de vite contienen una vulnerabilidad de DOM Clobbering al compilar scripts en formato de salida `cjs`/`iife`/`umd`. El gadget DOM Clobbering en el módulo puede provocar cross site scripting (XSS) en páginas web donde hay elementos HTML controlados por atacantes sin script (por ejemplo, una etiqueta img con un atributo de nombre no saneado). DOM Clobbering es un tipo de ataque de reutilización de código en el que el atacante primero incorpora un fragmento de marcado HTML aparentemente benigno que no es un script en la página web (por ejemplo, a través de una publicación o comentario) y aprovecha los gadgets (fragmentos de código js) que se encuentran en el código javascript existente para transformarlo en código ejecutable. Hemos identificado una vulnerabilidad de DOM Clobbering en los scripts incluidos en Vite, en particular cuando los scripts importan dinámicamente otros scripts desde la carpeta de activos y el desarrollador establece el formato de salida de compilación en `cjs`, `iife` o `umd`. En tales casos, Vite reemplaza las rutas relativas que comienzan con `__VITE_ASSET__` utilizando la URL recuperada de `document.currentScript`. Sin embargo, esta implementación es vulnerable a un ataque DOM Clobbering. La búsqueda `document.currentScript` puede ser ocultada por un atacante a través del mecanismo de acceso al elemento del árbol DOM nombrado del navegador. Esta manipulación permite a un atacante reemplazar el elemento de script deseado con un elemento HTML malicioso. Cuando esto sucede, el atributo src del elemento controlado por el atacante se utiliza como la URL para importar scripts, lo que potencialmente conduce a la carga dinámica de scripts desde un servidor controlado por el atacante. Esta vulnerabilidad puede resultar en ataques de cross site scripting (XSS) en sitios web que incluyen archivos incluidos en Vite (configurados con un formato de salida de `cjs`, `iife` o `umd`) y permiten a los usuarios inyectar ciertas etiquetas HTML sin scripts sin sanear adecuadamente los atributos name o id. Este problema se ha corregido en las versiones 5.4.6, 5.3.6, 5.2.14, 4.5.5 y 3.2.11. Se recomienda a los usuarios que actualicen la versión. No se conocen workarounds para esta vulnerabilidad.
Impacto
Puntuación base 3.x
6.40
Gravedad 3.x
MEDIA
Referencias a soluciones, herramientas e información
- https://github.com/vitejs/vite/commit/ade1d89660e17eedfd35652165b0c26905259fad
- https://github.com/vitejs/vite/security/advisories/GHSA-64vr-g452-qvp3
- https://github.com/webpack/webpack/security/advisories/GHSA-4vvj-4cpr-p986
- https://research.securitum.com/xss-in-amp4email-dom-clobbering
- https://scnps.co/papers/sp23_domclob.pdf