Vulnerabilidad en la función "noteController.showNote" en HedgeDoc (CVE-2021-29474)
Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-22
Limitación incorrecta de nombre de ruta a un directorio restringido (Path Traversal)
Fecha de publicación:
26/04/2021
Última modificación:
24/10/2022
Descripción
HedgeDoc (anteriormente conocida como CodiMD) es un editor colaborativo de código abierto. Un atacante puede leer archivos arbitrarios ".md" del sistema de archivos del servidor debido a una comprobación inapropiada de la entrada, lo que resulta en la habilidad de llevar a cabo un salto de ruta relativo. Para comprobar si está afectado, puede intentar abrir la siguiente URL: "http://localhost:3000/..%2F..%2FREADME#" (sustituya "http://localhost:3000" por la URL base de su instancia, por ejemplo "https://demo.hedgedoc.org/..%2F..%2FREADME#"). Si ve que se muestra una página README, significa que está ejecutando una versión afectada. El ataque funciona debido a que el router interno pasa el alias codificado en url a la función "noteController.showNote". Esta función pasa la entrada directamente a la función de utilidad findNote(), que la pasará a la función parseNoteId(), que intenta dar sentido al noteId/alias y comprobar si ya se presenta una nota y, si es así, si se ha actualizado el archivo correspondiente en el disco. Si no se presenta ninguna nota, se llama a la función de creación de notas, que pasa este alias no comprobado, con un ".md" añadido, a una función path.join() que se lee del sistema de archivos en la rutina de seguimiento y proporciona el contenido precargado de la nueva nota. Esto permite a un atacante no sólo leer archivos ".md" arbitrarios del sistema de archivos, sino también observar los cambios en ellos. La utilidad de este ataque puede considerarse limitada, ya que principalmente los archivos markdown usan la terminación de archivo ".md" y todos los archivos markdown contenidos en el proyecto hedgedoc, como el README, son públicos de todos modos. Si se presentan otras protecciones, como un chroot o un contenedor, o los permisos adecuados para los archivos, la utilidad de este ataque es bastante limitada. A nivel de proxy inverso se puede forzar una decodificación de la URL, lo que evitará este ataque porque el router no aceptará dicha ruta
Impacto
Puntuación base 3.x
5.80
Gravedad 3.x
MEDIA
Puntuación base 2.0
5.00
Gravedad 2.0
MEDIA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:a:hedgedoc:hedgedoc:*:*:*:*:*:*:*:* | 1.8.0 (excluyendo) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página