IPBUF安全漏洞报告
English
CVE-2026-22822 CVSS 8.8 高危

CVE-2026-22822 External Secrets Operator getSecretKey模板函数权限绕过漏洞

披露日期: 2026-01-21

漏洞信息

漏洞编号
CVE-2026-22822
漏洞类型
权限绕过
CVSS评分
8.8 高危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
External Secrets Operator

相关标签

权限绕过KubernetesExternal Secrets Operator密钥泄露CVE-2026-22822

漏洞概述

External Secrets Operator是一款用于从第三方服务读取信息并自动注入为Kubernetes Secrets的工具。在0.20.2至1.2.0版本中,getSecretKey模板函数存在安全漏洞,该函数虽然是为senhasegura Devops Secrets Management (DSM)提供者引入的,但能够利用external-secrets控制器的roleBinding跨命名空间获取密钥,绕过了原有的安全机制。攻击者可以通过在ExternalSecret资源中使用getSecretKey函数,访问被授权范围外的其他命名空间中的密钥,可能导致敏感信息泄露。该函数在1.2.0版本中被完全移除。

技术细节

漏洞源于External Secrets Operator中的getSecretKey模板函数,该函数在设计时允许通过控制器的roleBinding权限跨命名空间访问密钥资源。攻击者需要创建一个恶意的ExternalSecret资源,利用getSecretKey函数指定目标命名空间和密钥名称,即可获取本应无权限访问的密钥内容。漏洞利用条件:1)集群中存在external-secrets控制器且具有足够权限;2)攻击者能够在任一命名空间创建ExternalSecret资源;3)目标密钥存在于其他命名空间且控制器有权限访问。

攻击链分析

STEP 1
侦查阶段
攻击者识别集群中部署的External Secrets Operator版本,确认版本在0.20.2-1.2.0范围内
STEP 2
权限探测
确认攻击者具有在任一命名空间创建ExternalSecret资源的权限,且控制器具有跨命名空间访问能力
STEP 3
漏洞利用
创建恶意ExternalSecret资源,使用getSecretKey函数指定目标命名空间和密钥名称
STEP 4
敏感信息获取
控制器执行并返回目标命名空间中的密钥内容,攻击者通过创建的Secret资源获取敏感信息

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
apiVersion: external-secrets.io/v1beta1 kind: ExternalSecret metadata: name: malicious-secret spec: refreshInterval: 1h secretStoreRef: name: store kind: ClusterSecretStore target: name: secret data: - secretKey: password remoteRef: key: my-key-in-other-namespace property: password

影响范围

External Secrets Operator >= 0.20.2 且 < 1.2.0

防御指南

临时缓解措施
在1.2.0之前版本中,使用Kubernetes策略引擎(如Kyverno、Kubewarden或OPA)阻止ExternalSecret资源使用getSecretKey函数;同时限制控制器的命名空间访问权限,仅授予必要的最小权限。

参考链接

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