Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-54761-poc — 概念验证,展示通过跨Provider命名空间(crossProviderNamespaces)漏洞绕过Traefik的Kubernetes Gateway提供程序中的授权(CVE-2026-54761),暴露内部服务如api@internal。 | Kitploit
工具/GitHubGitHub/saku0512/cve-2026-54761-poc
容器安全漏洞分析漏洞利用Web应用程序漏洞利用云安全学习与教育
GitHubsaku0512/cve-2026-54761-poc

CVE-2026-54761-poc

概念验证,展示通过跨Provider命名空间(crossProviderNamespaces)漏洞绕过Traefik的Kubernetes Gateway提供程序中的授权(CVE-2026-54761),暴露内部服务如api@internal。

查看仓库
32个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-54761: Traefik Kubernetes Gateway crossProviderNamespaces Bypass PoC

English version

概要

本仓库是一个概念验证(PoC),用于在本地环境中复现 Traefik 的 Kubernetes Gateway provider 中存在的高严重性漏洞 CVE-2026-54761。

此漏洞影响 crossProviderNamespaces 的许可列表。在声明多个加权后端引用的 HTTPRoute 规则中,Traefik 对许可列表的验证作用于引用目标的 backendRef.namespace,而不是路由自身的 namespace。结果,即使 HTTPRoute 位于未被许可的 namespace 中,只要后端引用指向已许可的 namespace 并且存在对应的 Gateway API ReferenceGrant,也可能暴露 Traefik 内部服务(如 api@internal)。

报告者: saku0512 (https://github.com/Saku0512), vvvvvvvvvvel (https://github.com/vvvvvvvvvvel)


免责声明

本项目仅供教育目的和授权的安全测试使用。

请勿针对非您拥有或管理的系统运行此 PoC。本 PoC 设计用于创建一次性本地 kind 集群,并在隔离环境中演示该问题。


漏洞详情

  • CVE ID: CVE-2026-54761
  • 产品: Traefik
  • 组件: Kubernetes Gateway provider
  • 类型: 授权绕过 / 内部服务暴露
  • 影响: 有可能通过正常的数据平面暴露 Traefik 内部服务,如 api@internal
  • 受影响版本: 在以下修复版本之前的 Traefik
  • 修复版本: v3.6.21 和 v3.7.5

根本原因

crossProviderNamespaces 选项用于限制哪些 Gateway API 路由 namespace 可以声明包含 @internal 服务引用的 TraefikService 后端引用。

在存在漏洞的加权后端处理路径中,Traefik 检查 backendRef.namespace 是否在许可列表中。但安全边界应该是声明引用的 HTTPRoute 所在的 namespace,因此此验证对象是错误的。

期望行为:

root@kitploit:~
providers:
  kubernetesGateway:
    crossProviderNamespaces:
      - trusted

只有自身 namespace 为 trusted 的路由才能声明跨 provider 的 TraefikService 后端引用。

漏洞行为:

root@kitploit:~
backendRefs:
  - group: traefik.io
    kind: TraefikService
    name: api@internal
    namespace: trusted

当路由有多个后端引用,且 backendRef.namespace 设置为已许可的 trusted namespace 时,位于 attacker namespace 中的 HTTPRoute 可能被接受。


概念验证

此 PoC 创建一个具有以下配置的一次性本地 kind 集群:

  • Traefik v3.7.1
  • Gateway API CRDs
  • providers.kubernetesGateway.crossProviderNamespaces=trusted
  • 来自 trusted 的普通 Gateway API ReferenceGrant
  • 应被拒绝的阳性控制路由
  • 演示绕过的混合加权后端路由

所需条件

  • Docker
  • kind
  • kubectl
  • curl

执行方法

root@kitploit:~
cd external-repro-kind
./run-kind-repro.sh

脚本在结束时自动删除集群。

如需保留集群进行手动调查:

root@kitploit:~
KEEP_CLUSTER=1 ./run-kind-repro.sh

预期输出

控制路由从 attacker namespace 使用单个被禁止的 api@internal 后端引用。这种情况下 API 不应被暴露。

root@kitploit:~
control status: 404

利用路由使用两个后端引用,迫使 Traefik 构建加权服务。在存在漏洞的版本中,对 /api/http/services 的请求会返回 Traefik API 的 JSON。

root@kitploit:~
exploit returned Traefik API JSON
api@internal status: enabled
weighted members:
api@internal              1000000
attacker-whoami-http-80  1

关键点是两条路由都来自同一个不受信任的 attacker namespace。单后端的控制路由被拒绝,但混合加权后端路由成功解析并暴露了 api@internal。


文件

  • external-repro-kind/kind-config.yaml - 本地 kind 集群配置,在 127.0.0.1:18080 暴露 Traefik
  • external-repro-kind/traefik-v371.yaml - 存在漏洞的 Traefik 部署与 GatewayClass
  • external-repro-kind/gateway-exploit.yaml - namespace、Gateway、ReferenceGrant、控制路由、绕过路由
  • external-repro-kind/run-kind-repro.sh - 本地端到端复现脚本

缓解措施

请将 Traefik 升级至修复版本。

  • v3.6 系列:v3.6.21 及以上
  • v3.7 系列:v3.7.5 及以上

运营者也应检查现有的 Gateway API ReferenceGrant 资源。除非是明确授权的委托,否则不应允许不受信任的 namespace 访问跨 provider 的 TraefikService 引用。


参考信息

  • Traefik 安全公告 GHSA-3g6v-2r68-prfc
  • Traefik v3.6.21 发布
  • Traefik v3.7.5 发布
下载工具