在 Argo CD 中发现了一个严重漏洞,该漏洞允许权限有限的 API 令牌访问敏感存储库凭据。
项目详细信息 API 端点中的缺陷暴露了用户名和密码,通过在没有明确权限的情况下授予对机密的访问权限来破坏平台的安全模型。
该漏洞源于 Project API(特别是端点)中的授权检查不当。/api/v1/projects/{project}/detailed
根据漏洞详情,具有标准项目级权限的 API 令牌(例如用于管理应用程序的权限)可以检索与该项目关联的所有仓库凭证。
预期行为是,对敏感信息(如机密)的任何请求都需要显式的提升权限。但是,实际行为允许具有基本访问权限的令牌获取此数据。
开发
此问题不仅限于特定于项目的角色。任何持有权限的令牌都被视为易受攻击,包括那些具有更广泛的全局权限(如 .这大大扩大了潜在的攻击面,因为可以使用更多通用令牌来利用该缺陷。project getp, role/user, projects, get, *, allow
开发很简单。拥有具有必要权限的有效 API 令牌的攻击者可以对详细的项目 API 端点进行简单的身份验证调用。
生成的 JSON 响应将错误地包含一个对象,其中包含连接到项目的存储库的纯文本和凭据。这使得攻击者可以轻松获取可用于访问私有源代码存储库的凭据。repositoriesusernamepassword
此漏洞的后果是严重的,因为暴露的凭据可能导致源代码被盗、恶意代码注入 CI/CD 管道以及进一步损害开发基础设施。
Argo CD 开发团队已经解决了这个问题并发布了补丁。强烈建议管理员立即将其实例升级到以下安全版本之一,以降低风险:
- v3.1.2 版本
- v3.0.14
- v2.14.16
- 2.13.9版
升级到已修补的版本将确保 API 端点正确执行权限检查并防止未经授权泄露存储库凭据。
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。


评论