Argo CD 出现严重漏洞,攻击者可能变成管理员为所欲为,请尽快升级
关注公众号并添加到“星标⭐”,防止错过消息
后台回复【资料包】获取学习资料
Kubernetes 持续交付工具 Argo CD 中存在一个重大安全漏洞。利用此漏洞可以让攻击者在目标实例上获得权限的提升,包括管理员访问权限。
受影响版本
1.4.0 到 2.1.14 2.2.8 2.3.3
影响
伦敦技术公司 G-Research 的研究员 Mark Pim 和 Andrzej Hajto 发现的在 Argo CD 中发现了一个严重漏洞,该漏洞允许未经身份验证的用户通过随请求发送特制的 JSON Web 令牌 (JWT)来冒充任何 Argo CD 用户或角色,包括用户。要利用此漏洞,必须启用对 Argo CD 实例的匿名访问
https://argo-cd.readthedocs.io/en/stable/operator-manual/rbac/#anonymous-access
在默认的 Argo CD 安装中,匿名访问被禁用。要了解您的实例中是否启用了匿名访问,请参阅下面此公告的解决方法部分。
可以利用该漏洞冒充任何用户或角色,包括内置admin
帐户,无论该帐户是启用还是禁用。此外,攻击者不需要 Argo CD 实例上的帐户即可利用此功能。
如果启用对实例的匿名访问,攻击者可以:
提升他们的权限,有效地让他们在集群上获得与 Argo CD 实例相同的权限,在默认安装中是集群管理员。这将允许攻击者创建、操作和删除集群上的任何资源。 通过部署具有提升权限的恶意工作负载来泄露数据,从而绕过任何由 Argo CD API 强制执行的敏感数据编辑
我们强烈建议所有 Argo CD 用户尽快更新到包含此补丁的版本,无论您的实例中是否启用了匿名访问。
请参阅下面的版本列表,其中包含针对此漏洞的修复以及针对此问题存在的任何可能的解决方法。
补丁
此漏洞的补丁已在以下 Argo CD 版本中发布:
v2.3.4 v2.2.9 v2.1.15
解决方法
禁用匿名访问
如果您无法快速升级到修补版本,我们强烈建议您禁用匿名访问(如果已启用)。
要了解您的 Argo CD 实例是否启用了匿名访问,您可以查询argocd-cm
Argo CD 的安装命名空间中的 ConfigMap。以下示例假设您已将 Argo CD 安装到argocd
命名空间:
$ kubectl get -n argocd cm argocd-cm -o jsonpath='{.data.users\.anonymous\.enabled}'
如果此命令的结果为空或"false"
,则不启用对该实例的匿名访问。如果结果是"true"
,则您的实例很容易受到攻击。
要禁用匿名访问,请修补argocd-cm
ConfigMap 以删除该users.anonymous.enabled
字段或将此字段设置为"false"
.
要将字段设置为"false"
:
$ kubectl patch -n argocd cm argocd-cm --type=json -p='[{"op":"add", "path":"/data/users.anonymous.enabled", "value":"false"}]'
或者您可以完全删除该字段,从而禁用匿名访问,因为默认值为false
:
$ kubectl patch -n argocd cm argocd-cm --type=json -p='[{"op":"remove", "path":"/data/users.anonymous.enabled"}]'
推荐阅读
还怕记不住 Kubectl 命令?K9s 太强大了Kubernetes 微服务最佳实践
Kubernetes Pod 删除操作源码解析
使用 Lux 下载B站视频,真强大
38 万K8s API 服务暴露在公网上可能被攻击?
大规模 K8s 集群性能瓶颈和调优实践
优雅的跨 Namespace 同步 Secret 和 ConfigMap?
Kruise 轻松让 K8S 应用实现渐进式交付图解 Kubernetes Pod 如何获取 IP 地址使用 Telepresence 轻松在本地调试 k8s 应用程序GitOps 工具选型,33 款工具任你挑!就在刚刚 k8s 1.24 正式发布,来看功能总览Nomad 会替代 Kubernetes 吗?两者如何选择?Docker 入门终极指南,详细版!漫画轻松看懂如何用 Kubernetes 实现 CI/CD阿里开源的低代码引擎,已收获 4.5K 星星新手必须知道的 Kubernetes 架构Kubernetes 架构核心点详细总结!