CVE-2026-39961Aiven Operator 在 0.31.0 至 0.37.0 之前的版本中存在严重的安全漏洞。由于该 Operator 充当“混淆代理”,拥有集群范围的 Secret 读写权限,且未对用户提供的 `spec.connInfoSecretSource.namespace` 字段进行充分验证。攻击者只需在自身命名空间拥有 `ClickhouseUser` CRD 的创建权限,即可利用此漏洞从其他命名空间(包括生产环境)窃取敏感信息,如数据库凭证、API 密钥等。该问题在 0.37.0 版本中已修复。
该漏洞的根源在于 Aiven Operator 的权限逻辑缺陷,即典型的“混淆代理”攻击场景。Operator 的 ServiceAccount 绑定了具有集群级别 Secret 读写权限的 `aiven-operator-role` ClusterRole。在处理 `ClickhouseUser` 自定义资源时,Operator 会读取 `spec.connInfoSecretSource.namespace` 字段来确定目标 Secret 所在的命名空间,并读取该 Secret 的内容以写入攻击者指定的命名空间。由于缺乏有效的准入控制 webhook(如 ServiceUser webhook 返回 nil 且 ClickhouseUser 缺少 webhook),Operator 信任了用户提交的命名空间参数。攻击者可以构造一个恶意的 `ClickhouseUser` YAML 文件,将 `connInfoSecretSource.namespace` 指向受害命名空间(如 `kube-system` 或生产环境数据库命名空间)。当 Operator 尝试处理该资源时,它会利用其高权限 ClusterRole 读取受害 Secret,并将凭证写入攻击者控制的 Secret 中,从而实现跨命名空间的凭据窃取。