github.com/argoproj/argo-cd 中的跨站点请求伪造 (CSRF) (CVE-2024-22424)
CVE编号
CVE-2024-22424利用情况
暂无补丁情况
N/A披露时间
2024-01-19漏洞描述
Argo CD是一个基于声明式的GitOps持续交付工具,用于Kubernetes。在2.10-rc2、2.9.4、2.8.8和2.7.15之前的Argo CD API存在跨服务器请求伪造(CSRF)攻击漏洞,在攻击者能够向与Argo CD同一父域的页面编写HTML时会受到影响。CSRF攻击通过诱使经过身份验证的Argo CD用户加载一个包含调用受害者帐户的Argo CD API端点代码的网页来进行。例如,攻击者可以向Argo CD用户发送一个看似无害的页面链接,但在后台调用Argo CD API端点来创建运行恶意代码的应用程序。Argo CD使用“宽松”SameSite Cookie策略来防止攻击者控制外部域的CSRF攻击。恶意外部网站可以尝试调用Argo CD API,但是Web浏览器会拒绝发送带有请求的Argo CD验证令牌。许多公司将Argo CD托管在内部子域中。如果攻击者能够在例如https://test.internal.example.com/上放置恶意代码,他们仍然可以执行CSRF攻击。在这种情况下,“宽松”SameSite Cookie无法防止浏览器发送身份验证Cookie,因为目标是Argo CD API的父域。通常,浏览器通过对具有敏感内容类型的敏感请求应用CORS策略来阻止此类攻击。特别是,浏览器将针对内容类型为“application/json”的POST请求发送“预检请求”,询问目标API“是否允许接受来自我的域的请求?”如果目标API没有回答“是”,浏览器将阻止该请求。在修补版本之前,Argo CD没有验证请求是否包含正确的内容类型头。因此,攻击者可以通过将内容类型设置为被认为是“不敏感”的内容,例如“text/plain”,绕过浏览器的CORS检查。浏览器不会发送预检请求,Argo CD将愉快地接受内容(实际上仍然是JSON)并执行所请求的操作(例如运行恶意代码)。此漏洞的修补程序已在以下Argo CD版本中发布:2.10-rc2、2.9.4、2.8.8和2.7.15。修补程序包含了破坏性的API更改。Argo CD API将不再接受未指定application/json作为其Content-Type的非GET请求。可接受的内容类型列表可以配置,并且可以(但不建议)完全禁用内容类型检查。建议用户升级。此漏洞没有已知的解决方法。解决建议
建议您更新当前系统或软件至最新版,完成漏洞的修复。
参考链接 |
|
---|---|
https://github.com/argoproj/argo-cd/issues/2496 | |
https://github.com/argoproj/argo-cd/pull/16860 | |
https://github.com/argoproj/argo-cd/security/advisories/GHSA-92mw-q256-5vwg |
- 攻击路径 网络
- 攻击复杂度 高
- 权限要求 无
- 影响范围 已更改
- 用户交互 需要
- 可用性 高
- 保密性 高
- 完整性 高
CWE-ID | 漏洞类型 |
Exp相关链接

版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
评论