🔍 CVE-2023-22736

8.5
CVSS Score
HIGH
2023-01-26
2026-06-17 05:36
✅ 완료

🇰🇷 한글 설명

Argo CD의 특정 버전에서 권한 우회 취약점이 발견되었습니다. 이 취약점은 Application 컨트롤러의 샤딩 기능이 활성화된 경우, 설정된 네임스페이스 제한을 무시하고 허용되지 않은 네임스페이스에 애플리케이션을 배포할 수 있게 합니다. 공격자가 애플리케이션 리소스를 업데이트할 수 있다면, 지정된 패턴을 벗어난 네임스페이스에서도 리소스 조정이 발생할 수 있습니다.

💡 쉬운 설명

Argo CD를 사용할 때 특정 설정이 켜져 있으면, 원래 허용되지 않은 구역(네임스페이스)에 몰래 프로그램을 설치할 수 있는 보안 구멍이 있습니다. 이는 시스템의 관리 규칙을 무시하고 다른 영역에 접근할 수 있게 만듭니다.

🇺🇸 원문 (English)

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Versions starting with 2.5.0-rc1 and above, prior to 2.5.8, and version 2.6.0-rc4, are vulnerable to an authorization bypass bug which allows a malicious Argo CD user to deploy Applications outside the configured allowed namespaces. Reconciled Application namespaces are specified as a comma-delimited list of glob patterns. When sharding is enabled on the Application controller, it does not enforce that list of patterns when reconciling Applications. For example, if Application namespaces are configured to be argocd-*, the Application controller may reconcile an Application installed in a namespace called other, even though it does not start with argocd-. Reconciliation of the out-of-bounds Application is only triggered when the Application is updated, so the attacker must be able to cause an update operation on the Application resource. This bug only applies to users who have explicitly enabled the "apps-in-any-namespace" feature by setting `application.namespaces` in the argocd-cmd-params-cm ConfigMap or otherwise setting the `--application-namespaces` flags on the Application controller and API server components. The apps-in-any-namespace feature is in beta as of this Security Advisory's publish date. The bug is also limited to Argo CD instances where sharding is enabled by increasing the `replicas` count for the Application controller. Finally, the AppProjects' `sourceNamespaces` field acts as a secondary check against this exploit. To cause reconciliation of an Application in an out-of-bounds namespace, an AppProject must be available which permits Applications in the out-of-bounds namespace. A patch for this vulnerability has been released in versions 2.5.8 and 2.6.0-rc5. As a workaround, running only one replica of the Application controller will prevent exploitation of this bug. Making sure all AppProjects' sourceNamespaces are restricted within the confines of the configured Application namespaces will also prevent exploitation of this bug.

📍 영향받는 시스템

Argo CD 2.5.0-rc1 이상 2.5.8 미만 버전, 2.6.0-rc4 버전

⚔️ 공격 벡터

샤딩이 활성화된 환경에서 권한이 있는 사용자가 애플리케이션 리소스를 업데이트하여 허용되지 않은 네임스페이스에 배포 유도

🛡️ 대응 방법

Argo CD를 2.5.8 또는 2.6.0-rc5 이상의 버전으로 업데이트하거나, Application 컨트롤러의 레플리카를 1개로 제한합니다.

🔧 검증 코드

명령어 결과에 취약한 버전 범위가 나타나면 해당 시스템은 보안 업데이트가 필요합니다.

Shell / Script
argocd version --client | grep -E 'v2.5.[0-7]|v2.6.0-rc4'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H

💻 영향받는 소프트웨어

Kubernetes