Argo CD 漏洞 CVE-2026-42880 通过 Dry-Run 泄露 Kubernetes 密钥
CVE-2026-42880 (CVSS 9.6) 在 Argo CD 中允许只读攻击者通过 ServerSideDiff 端点使用 Server-Side Apply dry-run 提取 Kubernetes 明文密钥。

执行摘要
Argo CD中存在一个严重的授权绕过漏洞,跟踪编号为CVE-2026-42880,CVSS评分为9.6,允许具有只读访问权限的攻击者从etcd中提取明文Kubernetes Secrets。该漏洞存在于ServerSideDiff端点,该端点在处理Server-Side Apply干运行请求时未能执行适当的授权和数据掩码。受影响的Argo CD版本为3.2.0至3.2.10和3.3.0至3.3.8。根据GitHub安全通告,项目维护者在2026年5月8日发布了3.2.11和3.3.9版本的补丁。
技术分析
Argo CD是一个声明式的GitOps持续交付工具,用于Kubernetes,它暴露了一个ServerSideDiff端点,该端点计算期望状态(在Git中定义)和实时集群状态之间的差异。该端点使用Kubernetes API服务器的Server-Side Apply干运行机制预览更改,而实际上不应用它们。根据Argo CD维护者发布的通告,该端点没有验证请求用户是否有权限读取正在diff的Secret数据。它还未能掩码diff输出中的敏感字段。
具有对Argo CD应用程序只读访问权限的攻击者——例如,具有只读角色绑定的开发人员——可以制作一个请求,触发针对引用Kubernetes Secret的资源的干运行diff。Kubernetes API服务器在干运行期间返回完整的Secret有效载荷(包括base64编码值),ServerSideDiff端点将这些数据未经编辑地传回给攻击者。通告指出,攻击者不需要直接访问Kubernetes API;整个漏洞利用完全通过Argo CD API或UI执行。
该漏洞特别危险,因为通常授予开发人员、审计员和CI/CD管道只读访问权限。在多租户Argo CD部署中,如果Argo CD实例具有广泛的RBAC权限,具有对一个应用程序访问权限的用户可能会潜在地枚举跨命名空间或集群的Secrets。
维护者感谢安全研究员Rory McNamara发现并负责任地披露了这个漏洞。截至发布日期,通告没有表明漏洞在野外被积极利用,但攻击的技术简单性——只需要一个精心制作的API调用——提高了风险档案。
缓解措施与建议
运行Argo CD的组织应立即升级到版本3.2.11或3.3.9。补丁为ServerSideDiff端点添加了授权检查,并在diff输出中实现了Secret字段的数据掩码。对于无法立即升级的环境,管理员可以通过以下方式降低风险:
- 审查并收紧RBAC策略,以最小化对Argo CD应用程序具有只读访问权限的用户数量。
- 审计Argo CD API和UI访问日志,查找针对引用Secrets的资源的异常干运行请求。
- 将对Argo CD API服务器的网络访问限制在受信任的IP范围内。
- 启用Kubernetes审计日志记录,以检测对Server-Side Apply干运行端点的意外使用。
Argo CD项目没有提供不升级就能完全解决漏洞的替代配置更改。
订阅更新
将最新的网络安全资讯直接发送到您的邮箱。
