未经验证的任意文件读取(通过绝对路径)
尽管 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
链接: