当地时间 2 月 3 日,安全研究团队 Apiiro在开源持续交付平台 Argo CD 中发现了一个零日漏洞,该漏洞使攻击者只需上传精心制作的 Helm 图表,就能够访问机密、密码和 API 密钥等敏感信息。
据悉,该漏洞被跟踪为 CVE-2022-24438,所有版本的 Argo CD 都会受到影响,“在使用包含敏感或机密数据的加密值文件(例如使用 git-crypt 或 SOP 插件)的环境中,这种影响尤其严重,并在呈现 Helm 图表之前将这些秘密解密到磁盘。”目前项目维护者提供的补丁版本是v2.3.0、v2.2.4、v2.1.9。
Apiiro 在公告里表示,尽管 Argo CD 贡献者在 2019 年就意识到了这个弱点并实施了反路径遍历机制,但控制中的错误仍允许利用此漏洞。
为了构建新的部署管道,开发者可以定义 Git 存储库或 Kubernetes Helm 图表文件,包括 Kubernetes 配置所需的元数据和信息,以及在修改清单时动态更新云配置的能力。Helm 图表是一个 YAML 文件,嵌入不同的字段以形成部署应用程序所需的资源和配置声明。
所涉及的应用程序可以包含许多种类的值,其中一种类型可以包含其他文件中自包含的应用程序部分的文件名和相对路径。
存储库保存在名为 argocd-reposerver 的专用服务器或 pod 上。除了文件层次结构外,没有强分段,因此反路径遍历机制是文件安全的关键。该机制的内部工作原理主要体现在源代码中的一个文件 util/security/path_traversal.go 中,它定义了源路径输入的过程清理。
Apiiro 推断,Argo CD 的 URI 解析器总是将 URI 格式的字符串视为在应用程序的工作流程中已经被清除过的字符串。因此,使用精心设计的 Helm 图表并以 URI 格式传递绝对文件路径,攻击者可以绕过 Argo CD 的文件路径遍历预防机制。
“攻击者可以组装一个连接直接调用指定的值。”Apiiro 的安全研究副总裁Moshe Zioni在该公司的博客文章中总结道。根据 CVSS v3.0,他给了他的调查结果打出了 7.7 的分数 ,尽管到目前为止似乎没有其他来源对此进行过审查或认可。
网络检测和响应公司 ExtraHop 的高级技术经理 Jamie Moles 认为:“最大的问题之一是 Kubernetes 对于云原生公司至关重要。与 Log4j 一样,每当一段无处不在的代码受到攻击,大量公司都容易受到攻击,造成巨大损失。”
从 Apiiro 给出的时间表可以看出,从最初的披露,到修补和协调的公开披露,共计用了四天的时间。
评论