Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en Reposilite (CVE-2024-36116)

Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-22 Limitación incorrecta de nombre de ruta a un directorio restringido (Path Traversal)
Fecha de publicación:
19/06/2024
Última modificación:
06/03/2025

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. Reposilite brinda soporte para archivos JavaDocs, que son archivos que contienen documentación para artefactos. Específicamente, el controlador JavadocEndpoints.kt permite expandir el archivo javadoc al sistema de archivos del servidor y devolver su contenido. El problema está en la forma en que se expanden los archivos, específicamente en cómo se crea el nuevo nombre de archivo. El `file.name` tomado del archivo puede contener caracteres de path traversal, como '/../../../anything.txt', por lo que la ruta de extracción resultante puede estar fuera del directorio de destino. Si el archivo se toma de una fuente que no es de confianza, como Maven Central o JitPack, por ejemplo, un atacante puede crear un archivo especial para sobrescribir cualquier archivo local en la instancia de Reposilite. Esto podría conducir a la ejecución remota de código, por ejemplo, colocando un nuevo complemento en el directorio '$workspace$/plugins'. Alternativamente, un atacante puede sobrescribir el contenido de cualquier otro paquete. Tenga en cuenta que el atacante puede utilizar su propio paquete malicioso de Maven Central para sobrescribir cualquier otro paquete en Reposilite. 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-073.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:reposilite:reposilite:*:*:*:*:*:*:*:* 3.3.0 (incluyendo) 3.5.12 (excluyendo)