Vulnerabilidad en Reposilite (CVE-2024-36115)
Gravedad CVSS v3.1:
ALTA
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:
19/06/2024
Última modificación:
20/06/2024
Descripción
Reposilite es un administrador de repositorio de código abierto, liviano y fácil de usar para artefactos basados en Maven en el ecosistema JVM. Como administrador de repositorio de Maven, Reposilite brinda la capacidad de ver el contenido de los artefactos en el navegador, así como realizar tareas administrativas a través de API. El problema radica en el hecho de que el contenido del artefacto se entrega a través del mismo origen (protocolo/host/puerto) que la interfaz de usuario del administrador. Si el artefacto contiene contenido HTML con javascript dentro, el javascript se ejecuta dentro del mismo origen. Por lo tanto, si un usuario autenticado está viendo el contenido de los artefactos, el javascript interno puede acceder al almacenamiento local del navegador donde se almacena la contraseña del usuario (también conocida como 'token-secret'). Es especialmente peligroso en escenarios donde Reposilite está configurado para reflejar repositorios de terceros, como el Repositorio Central de Maven. Dado que cualquiera puede publicar un artefacto en Maven Central con su propio nombre, dichos paquetes maliciosos se pueden utilizar para atacar la instancia de Reposilite. Este problema puede provocar que la instancia de Reposilite se vea comprometida por completo. Si este ataque se realiza contra el usuario administrador, es posible utilizar la API de administrador para modificar la configuración y los artefactos en la instancia. En el peor de los casos, un atacante podría obtener la ejecución remota de código en todos los sistemas que utilicen artefactos de Reposilite. Es importante tener en cuenta que el atacante no necesita atraer al usuario víctima para que utilice un artefacto malicioso, sino simplemente abrir un enlace en el navegador. Este enlace se puede cargar silenciosamente entre el resto del contenido HTML, lo que hace que este ataque pase desapercibido. Incluso si la instancia de Reposilite está ubicada en un entorno aislado, como detrás de una VPN o en la red local, este ataque aún es posible ya que se puede realizar desde el navegador de administración. Reposilite ha solucionado este problema en la versión 3.5.12. Se recomienda a los usuarios que actualicen. No se conocen workarounds para esta vulnerabilidad. Este problema fue descubierto e informado por el laboratorio de seguridad de GitHub y también se rastrea como GHSL-2024-072.
Impacto
Puntuación base 3.x
7.10
Gravedad 3.x
ALTA
Referencias a soluciones, herramientas e información
- https://github.com/dzikoysk/reposilite/commit/279a472015ec675c1da449d902dc82e4dd578484
- https://github.com/dzikoysk/reposilite/commit/d11609f427aba255e0f6f54b1105d5d20ab043cf
- https://github.com/dzikoysk/reposilite/releases/tag/3.5.12
- https://github.com/dzikoysk/reposilite/security/advisories/GHSA-9w8w-34vr-65j2