Skip to main content
← All vulnerabilities
CVE-2023-40029GO-2023-2049BIT-ARGO-CD-2023-40029GHSA-FWR2-64VR-XV9M

Cluster secret might leak in cluster details page in Argo CD

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 2.6.15, 2.7.14, 2.8.3
1 proof of concept on GitHub
  • Exploitation: poc
  • Automatable: no
  • Technical impact: total

Summary

Argo CD is a declarative continuous deployment for Kubernetes. Argo CD Cluster secrets might be managed declaratively using Argo CD / kubectl apply. As a result, the full secret body is stored in`kubectl.kubernetes.io/last-applied-configuration` annotation. pull request #7139 introduced the ability to manage cluster labels and annotations. Since clusters are stored as secrets it also exposes the `kubectl.kubernetes.io/last-applied-configuration` annotation which includes full secret body. In order to view the cluster annotations via the Argo CD API, the user must have `clusters, get` RBAC access. Note: In many cases, cluster secrets do not contain any actually-secret information. But sometimes, as in bearer-token auth, the contents might be very sensitive. The bug has been patched in versions 2.8.3, 2.7.14, and 2.6.15. Users are advised to upgrade. Users unable to upgrade should update/deploy cluster secret with `server-side-apply` flag which does not use or rely on `kubectl.kubernetes.io/last-applied-configuration` annotation. Note: annotation for existing secrets will require manual removal.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: poc · Automatable: no · Technical impact: total

  3. Record last updated

Affected versions

  • argoproj argo-cd

    From 2.2.0 · fixed in 2.6.15; From 2.7.0 · fixed in 2.7.14; From 2.8.0 · fixed in 2.8.3

  • github.com/argoproj/argo-cdGo

    All versions

  • github.com/argoproj/argo-cd/v2Go

    From 2.2.0 · fixed in 2.6.15; From 2.7.0 · fixed in 2.7.14; From 2.8.0 · fixed in 2.8.3

  • github.com/argoproj/argo-cd/v2Go

    From 2.2.0 · fixed in 2.6.15

  • github.com/argoproj/argo-cd/v2Go

    From 2.7.0 · fixed in 2.7.14

  • github.com/argoproj/argo-cd/v2Go

    From 2.8.0 · fixed in 2.8.3

References 4

GitHub · argoproj/argo-cd

GitHub · guobei233/CVE-2023-40029