
Неаутентифицированное чтение произвольных файлов через абсолютный путь
Неаутентифицированное произвольное чтение файла через абсолютный путь
Хотя метод Path.resolve() используется для защиты от обхода пути (path traversal), я обнаружил, что использование абсолютного пути успешно читает внутренние файлы. Эндпоинт также не требует аутентификации, что означает, что любой может прочитать все файлы организации, файловую систему из любого места, где находится корень хранилища, указанный в: files.store.root = /file-store/ в файле конфигурации application-dev.properties. Это позволяет несанкционированный доступ к конфиденциальным внутренним файлам.
Метод storageService.loadAsResource() использует Path.resolve() без предварительной проверки того, что входное имя является относительным путём и что разрешённый путь остаётся в пределах заданного корня файлового хранилища. Если в качестве fileName указать абсолютный путь, это напрямую приведёт к доступу к произвольному файлу.
Кроме того, эндпоинт /api/v1/files/{fileName} открыт без какой-либо проверки аутентификации или авторизации, что позволяет любому неаутентифицированному пользователю получать доступ к файлам.
Использование:
python3 CVE-2025-46822.py http://victim.com /etc/passwd
Ссылки: