Vert.x-Web Access Control Flaw in StaticHandler’s Hidden File Protection for Files Under Hidden Directories
漏洞详情
包名: maven:io.vertx:vertx-web
受影响版本:
- < 4.5.22
-
= 5.0.0, <= 5.0.4
已修复版本:
- 4.5.22
- 5.0.5
漏洞描述
当Vert.x Web的StaticHandler配置了setIncludeHidden(false)时,其隐藏文件保护功能存在缺陷。
在当前实现中,只有最终路径段(即文件名)以点(.)开头的文件才会被视为"隐藏"文件并被阻止访问。然而,这种逻辑在以下情况下会失效:
- 隐藏目录下的文件:例如
/.secret/config.txt——虽然.secret是一个隐藏目录,但config.txt文件本身不以点开头,因此会被正常提供访问。 - 实际影响:放置在隐藏目录(如
.git、.env、.aws)中的敏感文件可能变得公开可访问。
因此,该行为不符合includeHidden=false配置的预期,该配置理想情况下应该保护所有隐藏文件和目录。这个安全漏洞可能导致敏感信息的意外暴露。
复现步骤
1. 准备测试环境
|
|
2. 实现测试服务器
|
|
3. 确认漏洞
|
|
潜在影响
1. 信息泄露
可能被暴露的敏感文件示例:
.git/config:Git仓库设置(如远程URL、凭据).env/*:环境变量(API密钥、数据库凭据).aws/credentials:AWS访问密钥.ssh/known_hosts:SSH主机信任信息.docker/config.json:Docker注册表凭据
2. 攻击场景
- 攻击者可以猜测常见的隐藏目录名称并枚举其中的文件名来访问机密数据。
- 特别是对于
.git/HEAD、.git/config、.git/objects/*等文件——可能允许完全重建源代码。
3. 受影响范围
- 受影响版本:Vert.x Web 5.1.0-SNAPSHOT(可能包括更早版本)
- 环境:所有操作系统(Windows、Linux、macOS)
- 配置:所有使用
StaticHandler.setIncludeHidden(false)的应用程序
参考链接
- GHSA-h5fg-jpgr-rv9c
- https://nvd.nist.gov/vuln/detail/CVE-2025-11965
安全评分
严重程度: 中等
CVSS总体评分: 6.3/10
CVSS v4基础指标:
- 攻击向量:网络
- 攻击复杂度:低
- 攻击要求:存在
- 所需权限:无
- 用户交互:无
- 机密性影响:低
- 完整性影响:低
- 可用性影响:无
弱点分类
弱点: CWE-552 - 外部方可访问的文件或目录
产品使文件或目录可被未经授权的参与者访问,即使它们不应该被访问。