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.