
認証不要の絶対パスによる任意ファイル読み取り
絶対パスによる認証なしの任意ファイル読み取り
Path.resolve() メソッドがパストラバーサル対策として使用されている一方で、絶対パスを使用すると内部ファイルが正常に読み取れることを発見しました。このエンドポイントは認証もされておらず、つまり、application-dev.properties で設定されているストアルート (files.store.root = /file-store/) から誰でも組織全体のファイルやファイルシステムを読み取ることができ、機密性の高い内部ファイルへの不正アクセスを引き起こします。
storageService.loadAsResource() メソッドは Path.resolve() を使用していますが、まず入力名が相対パスであり、解決されたパスが意図したファイルストレージルート内に留まることを確認していません。そのため、fileName として絶対パスを指定すると、直接その任意のファイルにアクセスしてしまいます。
また、/api/v1/files/{fileName} エンドポイントは認証や認可チェックが一切行われずに公開されているため、認証されていない任意のユーザーがファイルにアクセスできます。
使用方法:
python3 CVE-2025-46822.py http://victim.com /etc/passwd
リンク: