0x00 漏洞概述
CVE ID |
CVE-2022-29165 |
发现时间 |
2022-06-01 |
类 型 |
权限提升 |
等 级 |
严重 |
远程利用 |
是 |
影响范围 |
|
攻击复杂度 |
低 |
用户交互 |
无 |
PoC/EXP |
在野利用 |
0x01 漏洞详情
Argo CD是用于Kubernetes的声明式GitOps持续交付工具。
5月18日,ArgoCD项目发布安全公告,Argo CD中存在一个权限提升漏洞(CVE-2022-29165),该漏洞的CVSS评分为10.0。
当启用对Argo CD实例的匿名访问时(默认禁用),未经身份验证的用户可以通过在请求中发送特制的JSON Web Token(JWT)来冒充任何Argo CD用户或角色,包括管理员用户,无论该帐户是否被启用或存在于Argo CD实例上。
成功利用此漏洞可以在集群上获得与Argo CD实例相同的权限,在默认安装中是集群管理员。这将能够创建、操纵和删除集群上的任何资源,或执行其它恶意操作。
影响范围
Argo CD 版本1.4.0 - 2.1.14
Argo CD 版本 2.2.8
Argo CD 版本 2.3.3
0x02 安全建议
目前此漏洞已经修复,建议所有 Argo CD 用户尽快更新到以下修复版本,无论您的实例中是否启用了匿名访问:
Argo CD 版本 v2.3.4
Argo CD 版本 v2.2.9
Argo CD 版本 v2.1.15
下载链接:
https://github.com/argoproj/argo-cd/releases
缓解措施:
禁用匿名访问
如果暂时无法升级到修复版本,可以选择禁用匿名访问(如果已启用)。
1.若要查询Argo CD实例是否启用了匿名访问,可以查询Argo CD的安装命名空间中的argocd-cm ConfigMap。下例假设已经把Argo CD安装到argocd命名空间:
$kubectl get -n argocd cm argocd-cm -o jsonpath=’{.data.users.anonymous.enabled}’
如果此命令的结果为空或"false",则表示未启用对该实例的匿名访问。如果结果是"true",则意味着实例很容易受到攻击。
2.要禁用匿名访问,请修补argocd-cmConfigMap 以删除该users.anonymous.enabled字段或将此字段设置为"false":
A.将字段设置为"false":
$kubectl patch -n argocd cm argocd-cm --type=json-p='[{"op":"add","path":"/data/users.anonymous.enabled","value":"false"}]'
B.也可以选择完全删除该字段,从而禁用匿名访问,因为默认值为false:
$kubectl patch -n argocd cm argocd-cm --type=json-p='[{"op":"remove", "path":"/data/users.anonymous.enabled"}]'
0x03 参考链接
https://github.com/argoproj/argo-cd/security/advisories/GHSA-r642-gv9p-2wjj
https://argo-cd.readthedocs.io/en/stable/operator-manual/rbac/#anonymous-access
https://latesthackingnews.com/2022/05/31/serious-argo-cd-vulnerability-could-allow-admin-access-to-the-attackers/
0x04 版本信息
版本 |
日期 |
修改内容 |
V1.0 |
2022-06-01 |
首次发布 |
0x05 附录
原文始发于微信公众号(维他命安全):【漏洞通告】Kubernetes Argo CD权限提升漏洞(CVE-2022-29165)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论