Skip to content

安全考虑因素

!!警告 "弃用通知" 本页面现已弃用,仅作为存档。 如需了解最新信息,请查看我们的 安全策略已发布的安全公告

作为一个部署工具,Argo CD 需要有生产访问权限,这使得安全成为一个非常重要的话题。 Argoproj 团队非常重视安全问题,并不断努力改进。 在 Security 部分了解更多与安全相关的功能。

过去和当前问题概览

下表概括介绍了 Argo CD 项目过去和现在已知的问题。 如果无法更新或尚未修复,请参阅已知问题部分是否有可用的解决方法。

Date CVE Title Risk Affected version(s) Fix version
2020-06-16 CVE-2020-1747 PyYAML library susceptible to arbitrary code execution High all v1.5.8
2020-06-16 CVE-2020-14343 PyYAML library susceptible to arbitrary code execution High all v1.5.8
2020-04-14 CVE-2020-5260 Possible Git credential leak High all v1.4.3,v1.5.2
2020-04-08 CVE-2020-11576 User Enumeration Medium v1.5.0 v1.5.1
2020-04-08 CVE-2020-8826 Session-fixation High all n/a
2020-04-08 CVE-2020-8827 Insufficient anti-automation/anti-brute force High all <= 1.5.3 v1.5.3
2020-04-08 CVE-2020-8828 Insecure default administrative password

已知问题和解决方法

最近的一次安全审计(非常感谢https://soluble.aiMatt Hamilton )揭示了 Argo CD 中可能危及安全的几个局限性。 大多数问题都与内置的用户管理实现有关。

CVE-2020-1747, CVE-2020-14343 - PyYAML 库易被执行任意代码

摘要:

Risk Reported by Fix version Workaround
High infa-kparida v1.5.8 No

细节:

PyYAML 库在处理不受信任的 YAML 文件时,易受任意代码执行影响。 我们认为 Argo CD 不受此漏洞影响,因为 CVE-2020-1747 和 CVE-2020-14343 的影响仅限于使用 awscli。 awscli 仅被引用用于 AWS IAM 身份验证,端点是 AWS API。

CVE-2020-5260 - Git 凭据可能泄漏

摘要:

|风险|报告人|修复版本|工作方法||----|-----------|-----------|----------||关键|谷歌零项目的Felix Wilhelm|v1.4.3,v1.5.2|是

细节:

Argo CD 的许多操作都依赖于 Git。Git 项目于 2020-04-14 发布了一条安全公告,描述了 Git 中的一个严重漏洞,该漏洞可通过向 "git clone "操作输入恶意 URL,从而通过凭证助手导致凭证泄漏。

我们认为 Argo CD 不受此漏洞影响,因为 ArgoCD 既没有使用 Git 证书助手,也没有使用 git clone 进行版本库操作。 不过,我们不知道我们的用户是否可能自行配置了 Git 证书助手,并选择发布包含 Git 漏洞修复的新镜像。

缓解和/或解决方法:

我们强烈建议将您的 ArgoCD 安装升级到 v1.4.3 (如果使用 v1.4 分支) 或 v1.5.2 (如果使用 v1.5 分支)

当您正在运行 v1.4.x 时,只需将 argocd-serverargocd-repo-serverargocd-controller 的镜像标签更改为 v1.4.3,即可升级到 v1.4.3v1.4.3发布不包含额外的功能性错误修复。

同样,如果您正在运行 v1.5.x,只需将 argocd-serverargocd-repo-serverargocd-controller 的镜像标签更改为 v1.5.2,即可升级到 v1.5.2v1.5.2发布版不包含额外的功能性错误修复。

CVE-2020-11576 - 用户枚举

摘要:

|风险|报告人|修复版本|工作方法| |----|-----------|-----------|----------| |中|https://soluble.aiMatt Hamilton|v1.5.1|是|

细节:

Argo v1.5.0 版存在用户枚举漏洞,攻击者可利用该漏洞确定 Argo 中有效(非 SSO)账户的用户名。

缓解和/或解决方法:

升级到 ArgoCD v1.5.1 或更高版本。 作为一种解决方法,禁用本地用户并只使用 SSO 身份验证。

CVE-2020-8828 - 不安全的默认管理密码

摘要:

|风险|报告人|修复版本|工作方法| |----|-----------|-----------|----------| |高|https://soluble.aiMatt Hamilton|1.8.0|是|

细节:

Argo CD 使用 argocd-server pod 名称(例如:argocd-server-55594fbdb9-ptsf5)作为默认管理员密码。

能够在 Argo 名称空间中列出 pod 的 Kubernetes 用户能够检索默认密码。

此外,在大多数安装程序中,Pod 名称包含随机 "跟踪 "字符。这些字符是使用时间种子 PRNG而不是 CSPRNG 生成的。攻击者可能会利用这些信息来推断内部 PRNG 的状态,从而协助暴力攻击。

缓解和/或解决方法:

如用户文档中所述,建议采取的缓解措施是使用 SSO 集成。 默认的管理员密码只能用于初始配置,然后 [禁用](.../operator-manual/user-management/#disable-admin-user)或至少改为更安全的密码。

CVE-2020-8827 - 反自动化/反蛮力不足

摘要:

|风险|报告人|修复版本|工作方法| |----|-----------|-----------|----------| |高|https://soluble.aiMatt Hamilton|n/a|是|

细节:

ArgoCD v1.5.3 之前的版本不强制执行速率限制或其他反自动化机制,而这些机制可以减少管理员密码暴力破解。

缓解和/或解决方法:

ArgoCD v1.5.3 引入了本地用户账户的速率限制和反自动机制。

如果您还不能将 ArgoCD 升级到 v1.5.3,我们建议您禁用本地用户,改用 SSO 作为缓解问题的变通办法。

CVE-2020-8826 - 会话修复

摘要:

|风险|报告人|修复版本|工作方法| |----|-----------|-----------|----------| |高|https://soluble.aiMatt Hamilton|n/a|是|

细节:

为内置用户生成的身份验证令牌没有有效期。

这些问题在受控的隔离环境中可能可以接受,但如果 Argo CD 用户界面暴露在互联网上,就无法接受了。

缓解和/或解决方法:

建议采取的缓解措施是定期更改密码,使身份验证令牌失效。

CVE-2018-21034 - 敏感信息泄露

摘要:

|风险|报告人|修复版本|工作方法| |----|-----------|-----------|----------| |中|https://soluble.aiMatt Hamilton|v1.5.0|否|

细节:

在 Argo v1.5.0-rc1 之前的版本中,通过身份验证的 Argo 用户可以提交 API 调用,以获取存储在 git 中的秘密和其他配置清单。

缓解和/或解决方法:

升级至 ArgoCD v1.5.0 或更高版本。 无可用的解决方法

报告漏洞

有关如何报告 Argo CD 安全漏洞的更多详情,请参阅我们的安全政策