CVE-2023-22482
JWT audience claim is not verified
Severity Score
Exploit Likelihood
Affected Versions
Public Exploits
0Exploited in Wild
-Decision
Descriptions
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 CD's 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 CD's 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 token's `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.
Argo CD es una herramienta declarativa de entrega continua de GitOps para Kubernetes. Las versiones de Argo CD que comienzan con v1.8.2 y anteriores a 2.3.13, 2.4.19, 2.5.6 y 2.6.0-rc-3 son vulnerables a un error de autorización incorrecta que hace que la API acepte ciertos tokens no válidos. Los proveedores de OIDC incluyen un reclamo "aud" (audiencia) en tokens firmados. El valor de esa afirmación especifica la(s) audiencia(s) prevista(s) del token (es decir, el servicio o servicios que deben aceptar el token). Argo CD _valida_ que el token fue firmado por el proveedor OIDC configurado de Argo CD. Pero Argo CD _no_ valida el reclamo de audiencia, por lo que aceptará tokens que no estén destinados a Argo CD. Si el proveedor OIDC configurado de Argo CD también atiende a otras audiencias (por ejemplo, un servicio de almacenamiento de archivos), entonces Argo CD aceptará un token destinado a una de esas otras audiencias. Argo CD otorgará privilegios de usuario según el reclamo de "grupos" del token, aunque esos grupos no estaban destinados a ser utilizados por Argo CD. Este error también aumenta el impacto de un token robado. Si un atacante roba un token válido para una audiencia diferente, puede usarlo para acceder a Argo CD. Se lanzó un parche para esta vulnerabilidad en las versiones 2.6.0-rc3, 2.5.6, 2.4.19 y 2.3.13. No hay workarounds.
A flaw was found in ArgoCD. GitOps is vulnerable to an improper authorization bug where the API may accept invalid tokens. ID providers include an audience claim in signed tokens, which may be used to restrict which services can accept the token. ArgoCD doesn't properly validate the audience claim in such scenarios; if the ID provider used with ArgoCD is also being used with other audiences, it will accept tokens that may not be intended to access the ArgoCD cluster.
CVSS Scores
SSVC
- Decision:-
Timeline
- 2022-12-29 CVE Reserved
- 2023-01-25 CVE Published
- 2024-08-02 CVE Updated
- 2024-08-17 EPSS Updated
- ---------- Exploited in Wild
- ---------- KEV Due Date
- ---------- First Exploit
CWE
- CWE-863: Incorrect Authorization
CAPEC
References (3)
URL | Tag | Source |
---|
URL | Date | SRC |
---|
URL | Date | SRC |
---|---|---|
https://github.com/argoproj/argo-cd/security/advisories/GHSA-q9hr-j4rf-8fjc | 2023-11-07 |
URL | Date | SRC |
---|---|---|
https://access.redhat.com/security/cve/CVE-2023-22482 | 2023-01-25 | |
https://bugzilla.redhat.com/show_bug.cgi?id=2160492 | 2023-01-25 |
Affected Vendors, Products, and Versions
Vendor | Product | Version | Other | Status | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Vendor | Product | Version | Other | Status | <-- --> | Vendor | Product | Version | Other | Status |
Linuxfoundation Search vendor "Linuxfoundation" | Argo-cd Search vendor "Linuxfoundation" for product "Argo-cd" | >= 1.8.2 < 2.3.14 Search vendor "Linuxfoundation" for product "Argo-cd" and version " >= 1.8.2 < 2.3.14" | - |
Affected
| ||||||
Linuxfoundation Search vendor "Linuxfoundation" | Argo-cd Search vendor "Linuxfoundation" for product "Argo-cd" | >= 2.4.0 < 2.4.20 Search vendor "Linuxfoundation" for product "Argo-cd" and version " >= 2.4.0 < 2.4.20" | - |
Affected
| ||||||
Linuxfoundation Search vendor "Linuxfoundation" | Argo-cd Search vendor "Linuxfoundation" for product "Argo-cd" | >= 2.5.0 < 2.5.8 Search vendor "Linuxfoundation" for product "Argo-cd" and version " >= 2.5.0 < 2.5.8" | - |
Affected
| ||||||
Linuxfoundation Search vendor "Linuxfoundation" | Argo-cd Search vendor "Linuxfoundation" for product "Argo-cd" | 2.6.0 Search vendor "Linuxfoundation" for product "Argo-cd" and version "2.6.0" | rc1 |
Affected
| ||||||
Linuxfoundation Search vendor "Linuxfoundation" | Argo-cd Search vendor "Linuxfoundation" for product "Argo-cd" | 2.6.0 Search vendor "Linuxfoundation" for product "Argo-cd" and version "2.6.0" | rc2 |
Affected
| ||||||
Linuxfoundation Search vendor "Linuxfoundation" | Argo-cd Search vendor "Linuxfoundation" for product "Argo-cd" | 2.6.0 Search vendor "Linuxfoundation" for product "Argo-cd" and version "2.6.0" | rc3 |
Affected
| ||||||
Linuxfoundation Search vendor "Linuxfoundation" | Argo-cd Search vendor "Linuxfoundation" for product "Argo-cd" | 2.6.0 Search vendor "Linuxfoundation" for product "Argo-cd" and version "2.6.0" | rc4 |
Affected
|