Traefik Ingress NGINX provider mTLS 认证绕过
Traefik v3.7.0 至 v3.7.10 的 Kubernetes Ingress NGINX provider 在 TLS 选项冲突时会静默放弃客户端证书校验。v3.7.11 修复了这个问题。
段子原句“Kubernetes + Traefik Ingress 上开着 mTLS fail-open”
- 编号
CVE-2026-85596GHSA-j994-9gqj-9hwq- 严重度
- CVSS 4.0 8.2 High
- 利用状态
- 有公开 PoC有公开 PoC:公开材料有端到端复现。未发现在野利用。
- 对段子公司
- 同一主机由多个 Ingress 承载且 TLS 选项冲突时,Traefik 会回退到不要求客户端证书的默认配置,也就是段子说的 fail-open。只影响 v3.7.0 至 v3.7.10。
- 影响范围
- 受影响版本为 v3.7.0 至 v3.7.10,Traefik v2 不受影响。未找到受影响部署数。
- 修复版本
- →v3.7.11
结论
Traefik v3.7.0 至 v3.7.10 的 Kubernetes Ingress NGINX provider 存在高危 mTLS 认证绕过。相同主机由多个 Ingress 对象承载时,TLS 选项冲突会回退到不要求客户端证书的默认配置。上游于 2026-08-19 发布 v3.7.11 修复;官方 GHSA 于 2026-08-21 公布,编号为 GHSA-j994-9gqj-9hwq。[1] [2] [3]
事件经过
漏洞影响 Traefik Kubernetes Ingress NGINX provider。配置使用 nginx.ingress.kubernetes.io/auth-tls-secret 和 nginx.ingress.kubernetes.io/auth-tls-verify-client: "on" 时,多个 HTTPS Ingress 若共享同一主机、客户端 CA 密钥和认证模式,会生成不同名称的 TLS 选项。[1]
Traefik 将同主机的不同 TLS 选项判定为冲突,并使用入口点默认 TLS 配置。默认配置不要求客户端证书,因此未认证的网络客户端可以访问原本受 mTLS 保护的路由。官方 GHSA 评为 High,CVSS 4.0 为 8.2。[1]
漏洞具有明确配置前提,不是所有 Traefik Ingress 都会自动绕过。单个无冲突 TLS 选项的主机不受此特定问题影响。[1] [2]
技术细节
Ingress NGINX provider 根据 Ingress 的命名空间和资源名生成客户端认证 TLS 选项名。相同认证策略被拆分到两个同主机 Ingress 时,选项名仍不同。[1]
TCP 路由层发现同一 SNI 对应不同 TLS 选项后,会回退到入口点默认配置。该默认配置没有 RequireAndVerifyClientCert,从而绕过客户端证书校验。[1] [2]
利用者只需网络可达,不需要 Kubernetes 凭据或客户端证书。触发条件是集群已存在相同主机的分拆 Ingress,且其中包含要求验证客户端证书的受保护路由。[1]
这不是 HTTP/3 或 SNI 大小写匹配漏洞。另一项独立漏洞 CVE-2026-53622 涉及 HTTP/3 对通配符或混合大小写 SNI 的 TLS 选项查找,受影响版本和修复版本均不同。[4]
影响范围
| 项目 | 已核实范围 |
|---|---|
| 产品 | Traefik Kubernetes Ingress NGINX provider |
| 受影响版本 | v3.7.0 至 v3.7.10 |
| 修复版本 | v3.7.11 |
| Traefik v2 | 不受影响;该 provider 的客户端认证处理在 v3.7.0 引入 |
| CVE | CVE-2026-85596;官方 GHSA 页面仍标注无已知 CVE |
| 严重度 | GHSA CVSS 4.0 8.2 High;NVD 收录的 CVSS-B 4.0 为 8.2 |
| 可量化受害规模 | 未找到用户数、受影响部署数、下载量、证书数或资金损失数据 |
GHSA 将漏洞归为 CWE-287 和 CWE-295。NVD 列出的受影响版本为 v3.7.0 至低于 v3.7.11。[1] [2]
截至报告日,未找到可靠公开证据证明该漏洞已遭在野利用。公开材料提供了端到端复现,但不等同于真实攻击记录。[1]
时间线
- 2026-08-19 06:44 UTCTraefik 发布 v3.7.11,包含该 GHSA 修复。[3]
- 2026-08-21,时区未注明Traefik 发布 GHSA-j994-9gqj-9hwq。[1]
- 2026-09-04,时区未注明NVD 发布 CVE-2026-85596 记录。[2]
修复与缓解
应升级至 Traefik v3.7.11 或更高版本。当前上游 v3.7 系列更新版本也包含此修复。[1] [3]
升级前,可将同主机规则合并到单个 Ingress,或避免在多个同主机 Ingress 上重复配置该客户端认证注解。也可在上游负载均衡器或 API 网关强制验证客户端证书。[5]
排查时,应检查同一主机的多个 HTTPS Ingress 是否共享同一 CA 密钥和认证模式。重点关注 auth-tls-secret 与 auth-tls-verify-client 注解,并确认入口点默认 TLS 配置不会造成认证降级。[1] [5]
对段子中公司的影响
段子明确写了 Traefik Ingress 开启 mTLS fail-open。若公司运行受影响 v3.7.0 至 v3.7.10,并启用了 Ingress NGINX provider,且把同一主机拆成多个 HTTPS Ingress 使用相同客户端 CA 和认证模式,则其受保护路由可能在没有客户端证书时仍可访问。[1] [2]
若公司使用 Traefik v2、v3.6 或更早版本,或每个主机只对应无冲突的 TLS 选项,则不符合这个特定漏洞的受影响条件。仅凭段子未提供版本、provider、Ingress 清单或访问日志,无法确认该公司实际已受影响。
存疑与未验证
- 官方 GHSA 未列 CVE 编号;CVE-2026-85596 可由 NVD 与 Red Hat 记录交叉确认。[1] [2] [5]
- GHSA 页面给出 CVSS 4.0 8.2。Red Hat 页面同时展示其 CVSS 3.1 7.5 和 NVD 9.8,评分体系与评估来源不同,不应混为一个分数。[1] [5]
- 未找到受害部署数量、影响用户数、攻击活动或损失金额的可靠统计。
- 未验证段子所指公司的 Traefik 版本、Ingress 清单和实际暴露情况。
- 未找到在野利用证据;公开复现只证明技术可行性。
参考资料
调研截止 2026-10-22 UTC+8 · 未验证的内容已在正文中标注 · 数字以原始来源为准
INC-14 Docker 29
Moby / Docker Engine 29.x 在 2026 年修复了授权插件绕过、BuildKit 问题和 3 项归档处理漏洞。CVE-2026-41567 可在宿主机上以 root 执行代码,但需要恶意镜像和压缩归档上传同时成立。
INC-16 ASP.NET Core / .NET
微软在 2026-10-13 发布 .NET 月度安全更新。Kestrel 的 HTTP/1 请求走私(CVE-2026-88092)可让隐藏请求绕过边缘访问控制;HTTP/2 尾部字段的换行处理(CVE-2026-70188)也有缺陷。另有 Windows 上 Microsoft QUIC 的堆溢出 RCE。