CVE-2026-22039Kyverno是一个专为云原生平台工程团队设计的策略引擎,广泛应用于Kubernetes环境中的策略管理和安全控制。该漏洞存在于命名空间的Kyverno Policy apiCall功能中,影响1.16.3和1.15.3之前的所有版本。攻击者可以利用此漏洞突破命名空间隔离限制,通过构造恶意的策略配置,利用上下文变量替换控制urlPath参数,使Kyverno admission controller使用其高权限ServiceAccount身份向Kubernetes API Server发起请求。这允许低权限用户读取其他命名空间的敏感资源(如ConfigMaps和Secrets),甚至执行跨命名空间的写入操作,如创建ClusterPolicies等集群级别的资源,从而实现权限提升和未授权访问。CVSS评分高达9.9,属于极其严重的云原生安全威胁。
该漏洞的根本原因在于Kyverno admission controller在处理命名空间级策略的apiCall请求时,缺乏对目标URL路径的命名空间边界验证。具体来说,当用户创建一个包含apiCall的命名空间级Policy时,Kyverno会使用其admission controller的ServiceAccount(通常具有较高的集群级权限)来执行解析后的urlPath对应的API请求。攻击者可以通过上下文变量替换(context variable substitution)技术,在urlPath中注入任意的API路径,例如指向其他命名空间的资源或集群级别的资源。漏洞利用的关键步骤包括:1) 攻击者获取目标命名空间的Policy创建权限;2) 构造包含apiCall的策略,使用变量替换控制urlPath指向敏感资源;3) Kyverno使用高权限ServiceAccount执行请求,从而绕过正常的RBAC权限检查。由于Kyverno的ServiceAccount通常被授予了较为宽松的RBAC权限以支持策略执行,因此该漏洞可导致严重的权限提升和数据泄露风险。