Möglicher Verzeichnis-Traversal: /uploads/* erlaubt dateiübergreifenden Dateizugriff

Problembeschreibung

Bei einer Sicherheitsbewertung unseres angepassten Discourse-Deployments haben wir eine potenzielle Directory-Traversal-Schwachstelle im Endpunkt /uploads/* entdeckt.

Problem details

  • Der Zugriff auf /uploads/ ermöglicht es Benutzern, Dateien aus beliebigen Upload-Verzeichnissen abzurufen, indem sie den URL-Pfad manipulieren.

  • Es ist beispielsweise möglich, Dateien in verschiedenen Upload-Verzeichnissen zu durchlaufen und darauf zuzugreifen, die logisch getrennt oder geschützt sein sollten.

  • Dieses Verhalten könnte es nicht autorisierten Benutzern ermöglichen, auf sensible Dateien oder Anhänge zuzugreifen, die nicht für sie bestimmt sind, was ein Sicherheitsrisiko darstellt.

Beispiel

Angenommen, Benutzer A lädt eine Datei in seinen privaten Nachrichten (oder einem anderen eingeschränkten Kontext) hoch.

Ein Angreifer kann eine URL wie folgt erstellen:

https://\u003cyour-forum-domain\u003e/uploads/default/original/1X/../../another_directory/secret_file.jpg

Dies ermöglicht es dem Angreifer, im Verzeichnisbaum nach oben zu traversieren und auf Dateien in anderen Verzeichnissen zuzugreifen.

Sicherheitsauswirkungen

  • Unbefugte Offenlegung privater, interner oder anderweitig eingeschränkter Dateien

  • Mögliche Eskalation je nach Dateiinhalt

Fragen / Feedback gesucht

  • Ist dies das erwartete Verhalten der aktuellen Upload-Implementierung?

  • Gibt es empfohlene Konfigurationen oder Patches, um Directory Traversal in /uploads/ zu verhindern?

  • Wurde dieses Problem im Upstream-Discourse diskutiert oder gemildert?

  • Haben Sie Anleitungen zur weiteren Absicherung des Dateizugriffs in Discourse-Deployments?

Vielen Dank für Ihre Aufmerksamkeit und Ihr Feedback zu diesem potenziellen Problem.

Vielleicht interessiert Sie die Funktion secure-uploads.

3 „Gefällt mir“