一、漏洞简介¶
1.1 漏洞背景¶
Zipkin 默认配置下不启用任何身份认证机制。这意味着如果 Zipkin 服务暴露在公网或不可信网络中,任何能够连接到 Zipkin 端口的用户都可以:
- 查看所有追踪数据(可能包含敏感业务信息)
- 上传伪造的追踪数据
- 获取服务拓扑信息
- 了解系统架构细节
1.2 漏洞概述(包含 CVE 编号、危害等级、漏洞类型、披露时间等)¶
| 项目 | 内容 |
|---|---|
| 漏洞编号 | 暂无统一编号 |
| 危害等级 | 暂未找到权威信息 |
| 漏洞类型 | 默认未授权访问漏洞 |
| 披露时间 | 暂未找到权威信息 |
| 影响组件 | Zipkin 分布式追踪系统 |
| 属性 | 描述 |
|---|---|
| CVE编号 | 无独立 CVE(配置安全问题) |
| 危害等级 | 中危 (Medium) |
| CVSS评分 | 6.5 |
| 漏洞类型 | 认证绕过 / 未授权访问 - CWE-306 |
| 影响组件 | Zipkin Server |
| 利用难度 | 低 |
核验说明:该问题未见统一 CVE 编号,本文结合原文与公开资料进行整理。
二、影响范围¶
2.1 受影响的版本¶
- 所有未配置认证的 Zipkin 版本
2.2 不受影响的版本¶
- 配置了认证机制的 Zipkin 实例
- 通过反向代理添加认证的实例
- 仅监听 localhost 的实例
2.3 触发条件(如特定模块、特定配置、特定运行环境等)¶
- Zipkin 服务绑定在 0.0.0.0 或公网 IP
- 未配置任何认证机制
- 防火墙未限制 9411 端口访问
三、漏洞详情与原理解析¶
3.1 漏洞触发机制¶
Zipkin 默认配置文件中:
# 默认配置
server:
port: 9411
# 无认证配置
# 无 access-control 配置
攻击者可以直接访问:
GET /api/v2/traces HTTP/1.1
Host: target:9411
无需任何认证即可获取所有追踪数据。
3.2 源码层面的根因分析(结合源码与补丁对比)¶
Zipkin Server 默认不启用安全模块:
// ZipkinServer.java
@SpringBootApplication
@EnableZipkinServer
public class ZipkinServer {
public static void main(String[] args) {
SpringApplication.run(ZipkinServer.class, args);
}
// 默认无 Security Configuration
}
四、漏洞复现(可选)¶
4.1 环境搭建¶
# 启动默认配置的 Zipkin
docker run -d -p 9411:9411 --name zipkin openzipkin/zipkin
# 确认服务可访问
curl http://localhost:9411/
4.2 PoC 演示与测试过程¶
# 1. 查看所有追踪数据
curl http://target:9411/api/v2/traces
# 2. 获取服务列表
curl http://target:9411/api/v2/services
# 3. 获取依赖关系
curl http://target:9411/api/v2/dependencies
# 4. 上传伪造追踪数据
curl -X POST http://target:9411/api/v2/spans \
-H "Content-Type: application/json" \
-d '[{"traceId":"fake","id":"1","name":"fake-span"}]'
Nmap 扫描:
nmap -p 9411 --script http-title "Zipkin" target
五、修复建议与缓解措施¶
5.1 官方版本升级建议¶
Zipkin 本身不内置认证功能,需要配合外部组件实现:
# 使用带有安全配置的部署方案
5.2 临时缓解方案(如修改配置文件、关闭相关模块、增加 WAF 规则等)¶
- 网络隔离:
# 仅允许内网访问
iptables -A INPUT -p tcp --dport 9411 -s 10.0.0.0/8 -j ACCEPT
iptables -A INPUT -p tcp --dport 9411 -j DROP
- 使用反向代理添加认证:
Nginx 配置:
server {
listen 9411;
auth_basic "Zipkin Access";
auth_basic_user_file /etc/nginx/.htpasswd;
location / {
proxy_pass http://127.0.0.1:9410;
}
}
- 限制监听地址:
# 仅监听本地
java -jar zipkin.jar --server.address=127.0.0.1
- 使用 Spring Security:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
六、参考信息 / 参考链接¶
6.1 官方安全通告¶
- Zipkin 安全最佳实践:https://zipkin.io/pages/security.html
6.2 其他技术参考资料¶
- Zipkin 官方文档:https://zipkin.io/
- Spring Security 配置:https://spring.io/projects/spring-security
报告生成时间:2026年3月21日 报告版本:v2.0 文件位置:/tmp/zq/zipkin-vulnerabilities-complete.md