Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Versions of Argo CD starting with v1.8.2 and prior to 2.3.13, 2.4.19, 2.5.6, and 2.6.0-rc-3 are vulnerable to an improper authorization bug causing the API to accept certain invalid tokens. OIDC providers include an aud
(audience) claim in signed tokens. The value of that claim specifies the intended audience(s) of the token (i.e. the service or services which are meant to accept the token). Argo CD does validate that the token was signed by Argo CDs configured OIDC provider. But Argo CD does not validate the audience claim, so it will accept tokens that are not intended for Argo CD. If Argo CDs configured OIDC provider also serves other audiences (for example, a file storage service), then Argo CD will accept a token intended for one of those other audiences. Argo CD will grant the user privileges based on the tokens groups
claim, even though those groups were not intended to be used by Argo CD. This bug also increases the impact of a stolen token. If an attacker steals a valid token for a different audience, they can use it to access Argo CD. A patch for this vulnerability has been released in versions 2.6.0-rc3, 2.5.6, 2.4.19, and 2.3.13. There are no workarounds.
The product performs an authorization check when an actor attempts to access a resource or perform an action, but it does not correctly perform the check. This allows attackers to bypass intended access restrictions.
Name | Vendor | Start Version | End Version |
---|---|---|---|
Argo_cd | Argoproj | 1.8.2 (including) | 2.3.14 (excluding) |
Argo_cd | Argoproj | 2.4.0 (including) | 2.4.20 (excluding) |
Argo_cd | Argoproj | 2.5.0 (including) | 2.5.8 (excluding) |
Argo_cd | Argoproj | 2.6.0-rc1 (including) | 2.6.0-rc1 (including) |
Argo_cd | Argoproj | 2.6.0-rc2 (including) | 2.6.0-rc2 (including) |
Argo_cd | Argoproj | 2.6.0-rc3 (including) | 2.6.0-rc3 (including) |
Argo_cd | Argoproj | 2.6.0-rc4 (including) | 2.6.0-rc4 (including) |
Red Hat OpenShift GitOps 1.5 | RedHat | openshift-gitops-1/argocd-rhel8:v1.5.9-2 | * |
Red Hat OpenShift GitOps 1.6 | RedHat | openshift-gitops-1/argocd-rhel8:v1.6.4-3 | * |
Red Hat OpenShift GitOps 1.7 | RedHat | openshift-gitops-1/argocd-rhel8:v1.7.1-2 | * |
Assuming a user with a given identity, authorization is the process of determining whether that user can access a given resource, based on the user’s privileges and any permissions or other access-control specifications that apply to the resource. When access control checks are incorrectly applied, users are able to access data or perform actions that they should not be allowed to perform. This can lead to a wide range of problems, including information exposures, denial of service, and arbitrary code execution.