本文使用的 Docker 镜像
发布日期: 2026 年 10 月 5 日
更新日期: 2026 年 10 月 16 日
更新内容: 2026.4.2 仍受 CVE-2026-103508 与 CVE-2026-103509 影响。产品版本请继续升到 2026.4.3 或更高。Hub 上仍没有与该版本同名的标签。
风险等级: 严重(Critical)
漏洞编号: CVE-2026-100102 · CVE-2026-100103
涉及镜像: perforce/p4search — 轩辕镜像 · Docker Hub
CVSS: 9.5(Critical,CVSS 4.0)· 10.0(Critical,CVSS 4.0)
披露时间: 2026 年 10 月 5 日(CVE 记录更新)
相关公告: Perforce · JDWP · Perforce · 默认令牌 · NVD · CVE-2026-100102 · NVD · CVE-2026-100103
一、漏洞概述
P4 Search 是 Perforce 的搜索服务,负责索引 P4 Server(Helix Core)中的文件内容、元数据和变更描述,供 P4 Code Review、P4 DAM 等产品查询。官方以容器镜像 perforce/p4search 交付。
2026.4.2 之前的官方容器镜像带有两处生产配置缺陷,均可从网络直接利用。
1. CVE-2026-100102:未认证的 Java 调试接口(Critical,9.5)
镜像启用了 Java 调试接口(JDWP),且该接口不要求认证。能够从网络访问到这个接口的人,可以用 P4 Search 的服务账号执行任意代码,并可能进一步控制它连接的 P4 Server。
漏洞类型是调试代码留在生产环境(CWE-489)。调试端口被映射到宿主机,或暴露在内网、公网时,风险最高。
2. CVE-2026-100103:服务认证令牌被重置为公开默认值(Critical,10.0)
同一版本线的镜像会把服务认证令牌重置成公开文档中写明的默认值。未认证的攻击者只要能访问服务端口,就能取得最高应用权限,并可能借此执行任意代码、攻陷所连接的 P4 Server。
部署时曾经改过令牌的实例,仍可能被镜像重新写回默认值。服务端口从网络可达即可利用。
重要说明: 两条都出在官方容器镜像的默认配置上,CVSS 分别为 9.5 与 10.0。镜像在 Docker Hub 上的拉取量不大,不改变这两条缺陷的严重程度。
二、漏洞状态
统计截止: 2026 年 10 月 5 日(UTC+8)
| 项目 | CVE-2026-100102 | CVE-2026-100103 |
|---|---|---|
| 风险 | Critical(9.5,CVSS 4.0) | Critical(10.0,CVSS 4.0) |
| 类型 | 生产环境遗留未认证 JDWP | 服务令牌重置为公开默认值 |
| 受影响版本 | 容器镜像 2026.4.1 及更早 | 容器镜像 2026.4.1 及更早 |
| 官方修复 | 2026.4.2 及更高 | 2026.4.2 及更高 |
| CISA KEV | 未列入 | 未列入 |
三、影响范围
1. 版本与发行形态
| 发行形态 | 受影响范围 | 修复线 |
|---|---|---|
| P4 Search 容器镜像 | 2026.4.1 及更早 | 镜像内版本 2026.4.2 或更高 |
Docker Hub perforce/p4search | 标签含 latest、r26.4、r26.3、r26.2、r26.1 | 公告未给出与 2026.4.2 对应的标签名,拉取后核对镜像内版本 |
2. 典型受影响场景
- 调试端口映射到宿主机,或调试接口能从内网、公网访问(CVE-2026-100102)
- P4 Search 服务端口对非可信网络开放(CVE-2026-100103)
- 部署时修改过令牌,但随后用 2026.4.2 之前的镜像启动,令牌被写回默认值
风险边界提示:
- 调试接口只在网络能够到达该端口时构成直接利用面。
- 令牌问题不依赖调试端口;服务端口可达即可尝试使用公开默认值。
- 攻陷 P4 Search 服务账号后,影响可以延伸到它所连接的 P4 Server。
四、修复建议
1. 升级到 2026.4.2 或更高(推荐)
| 形态 | 最低建议安全版本 |
|---|---|
| P4 Search 容器镜像 | 镜像内产品版本 2026.4.2 或更高 |
Docker Hub: perforce/p4search
轩辕镜像: perforce/p4search
Hub 上目前可见的标签是 latest、r26.4、r26.3、r26.2、r26.1。公开公告没有写明哪一个标签对应修复版 2026.4.2。拉取之后,用镜像标签、发行说明或容器内的版本信息确认产品版本不低于 2026.4.2,再投入使用。
拉取坐标(把 <标签> 换成你已确认含 2026.4.2 或更高版本的标签):
bashdocker pull docker.xuanyuan.run/perforce/p4search:<标签>
若使用 Compose,将 image: 改为上述坐标与已确认的标签后执行:
bashdocker compose pull docker compose up -d
2. 升级后确认令牌
- 确认运行中的镜像内版本为 2026.4.2 或更高。
- 确认服务认证令牌已经换成你自己的值,而不是公开文档中的默认值。
- 检查所连接的 P4 Server 是否有异常操作。
五、临时缓解措施
在完成升级之前:
-
调试端口不要映射到宿主机
去掉对 JDWP 端口的端口发布。用网络策略或防火墙把 P4 Search 限制在可信网段。 -
收紧服务端口
服务端口同样只对可信来源开放。CVE-2026-100103 不需要调试端口。 -
安排升级并更换令牌
网络隔离不能消除镜像把令牌写回默认值的行为。升级到 2026.4.2 或更高之后,再确认令牌已替换。
六、与轩辕镜像用户的相关说明
轩辕镜像提供的是镜像加速与拉取服务,不替代你对 P4 Search 版本和令牌的升级。
- 站内页:perforce/p4search。拉取命令形如
docker.xuanyuan.run/perforce/p4search:<标签>。 - 加速拉取不会自动变成 2026.4.2。公告未标明标签与修复版的对应关系,拉取后核对镜像内版本。
- 配置与排错见 轩辕镜像使用手册、镜像拉取 FAQ。
七、参考链接
- Perforce 官方公告(JDWP):rce-via-exposed-jdwp-debug-agent-in-p4search
- Perforce 官方公告(默认令牌):authentication-bypass-via-default-auth-token-in-p4search
- CVE 记录:CVE-2026-100102 · CVE-2026-100103
- NVD:CVE-2026-100102 · CVE-2026-100103
- Docker Hub:perforce/p4search
- 轩辕站内镜像页:perforce/p4search
轩辕镜像安全团队
2026 年 10 月 5 日
评论交流
免责声明
本博客文章所提供的内容、技术方案、配置示例及部署指南等信息,仅供学习交流和技术参考使用。文章内容基于发布时的技术环境和版本信息编写,可能因时间推移、技术更新或环境差异而存在不适用的情况。
用户在参考本博客内容进行部署操作前,应当充分了解相关技术风险,并建议在测试环境中进行充分验证和测试,确认无误后再考虑在生产环境中使用。生产环境部署前,请务必进行数据备份,并制定相应的回滚方案。
用户因使用本博客内容进行部署操作而产生的任何损失、数据丢失、系统故障、安全风险或其他问题,均由用户自行承担全部责任。轩辕镜像官方不对因使用本博客内容而产生的任何直接或间接损失承担责任。
本免责声明的最终解释权归轩辕镜像官方所有。
