
Unauthentifiziertes beliebiges Auslesen von Dateien über absoluten Pfad
Nicht authentifiziertes Lesen beliebiger Dateien über absoluten Pfad
Während die Path.resolve()-Methode zum Schutz vor Path-Traversal eingesetzt wird, habe ich festgestellt, dass die Verwendung eines absoluten Pfads erfolgreich interne Dateien lesen kann. Der Endpunkt ist zudem nicht authentifiziert, was bedeutet, dass jeder die gesamten Dateien der Organisation auslesen kann, und zwar vom Dateisystem, wo auch immer der Store-Root liegt: files.store.root = /file-store/ wie in application-dev.properties konfiguriert. Dies ermöglicht unbefugten Zugriff auf sensible interne Dateien.
Die Methode storageService.loadAsResource() verwendet Path.resolve(), ohne vorher sicherzustellen, dass der Eingabename ein relativer Pfad ist und dass der aufgelöste Pfad innerhalb des vorgesehenen Dateispeicher-Roots bleibt. Wenn man dann einen absoluten Pfad als fileName angibt, führt dies direkt zum Zugriff auf diese beliebige Datei.
Außerdem ist der Endpunkt /api/v1/files/{fileName} ohne jegliche Authentifizierungs- oder Autorisierungsprüfungen freigegeben, sodass jeder nicht authentifizierte Benutzer auf Dateien zugreifen kann.
Verwendung:
python3 CVE-2025-46822.py http://victim.com /etc/passwd
Links: