Potenzielle Ressourcenerschöpfung: Fehlende Ratenbegrenzung auf /uploads.json ermöglicht Massen-Uploads von Dateien

Problembeschreibung

Während einer Sicherheitsüberprüfung unserer angepassten Discourse-Bereitstellung haben wir ein potenzielles Risiko der Ressourcenerschöpfung im Zusammenhang mit der Dateiupload-API entdeckt.

Details

  • Upload-API: /uploads.json

  • Problem: Es gibt keine offensichtliche Ratenbegrenzung (Rate Limiting) für diesen Endpunkt. Jeder authentifizierte Benutzer kann schnell eine große Anzahl von Dateien hochladen.

  • Reproduktion:

    • Durch die Automatisierung von Anfragen kann ein Benutzer Tausende von Upload-Anfragen in kurzer Zeit senden.

    • Wir haben verifiziert, dass nach dem Senden Tausender Upload-Anfragen das Speicherverzeichnis Tausende von Dateien enthält.

Sicherheits-/Ressourcenauswirkungen

  • Angreifer oder sogar normale Benutzer könnten den Serverspeicher erschöpfen, die Leistung beeinträchtigen oder Betriebsprobleme auslösen, indem sie eine riesige Anzahl von Dateien hochladen.

  • Dies könnte potenziell für Denial-of-Service (DoS) missbraucht werden oder unerwartet die Speicherkosten erhöhen.

Fragen

  • Gibt es eine integrierte Ratenbegrenzung oder Missbrauchsprävention für den Endpunkt /uploads.json in Discourse?

  • Gibt es empfohlene Einstellungen oder Plugins, um die Upload-Häufigkeit von Benutzern oder die gesamte Speichernutzung pro Benutzer einzuschränken?

  • Gibt es Best Practices, um eine durch Dateiuploads verursachte Ressourcenauslastung in Discourse-Bereitstellungen zu verhindern?

Vielen Dank für Ihre Aufmerksamkeit und Ihren Rat!