Agotamiento potencial de recursos: la falta de limitación de velocidad en /uploads.json permite cargas masivas de archivos

Descripción del Incidente

Durante una revisión de seguridad de nuestro despliegue personalizado de Discourse, descubrimos un riesgo potencial de agotamiento de recursos relacionado con la API de carga de archivos.

Detalles

  • API de Carga: /uploads.json

  • Incidente: No parece haber limitación de tasa en este punto final. Cualquier usuario autenticado puede cargar rápidamente un gran número de archivos.

  • Reproducción:

    • Automatizando solicitudes, un usuario puede enviar miles de solicitudes de carga en poco tiempo.

    • Verificamos que después de enviar miles de solicitudes de carga, el directorio de almacenamiento contiene miles de archivos.

Impacto en Seguridad/Recursos

  • Los atacantes o incluso los usuarios normales podrían agotar el almacenamiento del servidor, degradar el rendimiento o desencadenar problemas operativos al cargar una cantidad masiva de archivos.

  • Esto podría ser abusado potencialmente para denegación de servicio o para aumentar los costos de almacenamiento inesperadamente.

Preguntas

  • ¿Existe alguna limitación de tasa incorporada o prevención de abuso para el punto final /uploads.json en Discourse?

  • ¿Existen configuraciones o complementos recomendados para restringir la frecuencia de carga de archivos por usuario o el uso total de almacenamiento por usuario?

  • ¿Existen mejores prácticas para prevenir el agotamiento de recursos causado por la carga de archivos en despliegues de Discourse?

¡Gracias por su atención y consejo!