Potencial Directory Traversal: /uploads/* permite acceso a archivos entre directorios

Descripción del problema

Durante una evaluación de seguridad de nuestra implementación personalizada de Discourse, descubrimos una posible vulnerabilidad de recorrido de directorios relacionada con el endpoint /uploads/*.

Detalles del problema

  • Acceder a /uploads/ permite a los usuarios obtener archivos de directorios de carga arbitrarios manipulando la ruta de la URL.

  • Por ejemplo, es posible recorrer y acceder a archivos en diferentes directorios de carga que deberían estar lógicamente separados o protegidos.

  • Este comportamiento podría permitir a usuarios no autorizados acceder a archivos o adjuntos confidenciales que no están destinados a ellos, lo que representa un riesgo de seguridad.

Ejemplo

Supongamos que el usuario A carga un archivo en sus mensajes privados (o en otro contexto restringido).

Un atacante puede crear una URL como:

https://\u003cdominio-de-tu-foro\u003e/uploads/default/original/1X/../../otro_directorio/archivo_secreto.jpg

Esto permite al atacante recorrer el árbol de directorios y acceder a archivos en otros directorios.

Impacto en la seguridad

  • Divulgación no autorizada de archivos privados, internos o restringidos de otro modo.

  • Posible escalada dependiendo del contenido del archivo.

Preguntas / Comentarios solicitados

  • ¿Es este un comportamiento esperado en la implementación actual de carga?

  • ¿Existen configuraciones o parches recomendados para prevenir el recorrido de directorios en /uploads/?

  • ¿Se ha discutido o mitigado este problema en Discourse upstream?

  • ¿Tienen alguna guía para asegurar aún más el acceso a archivos en implementaciones de Discourse?

Gracias por su atención y comentarios sobre este posible problema.

Quizás te interese la función secure-uploads.

3 Me gusta