
Executive summary
A max-severity flaw (CVSS 10.0) in Argo CD’s Project API allowed API tokens with only project “get” permissions to retrieve repository credentials (usernames & passwords) from the /api/v1/projects/{project}/detailed endpoint—even when those tokens had no explicit access to secrets. Fixed releases are 2.13.9, 2.14.16, 3.0.14, and 3.1.2; all earlier streams listed below are vulnerable. Administrators must patch, rotate repo credentials, and tighten RBAC immediately. GitHub+1NVDBleepingComputer
What happened & why it’s critical
- Root cause: insufficient access-control enforcement in Argo CD’s Project Details API allowed tokens with project-level “get” permissions (including global policies like
p, role/user, projects, get, *, allow) to receive repository connection objects that include usernames and passwords. GitHub - Impact: any user or automation bearing such a token could exfiltrate private Git/Helm repo credentials, enabling supply-chain compromise (repository tampering, secret reuse in other systems) across your GitOps estate. BleepingComputer
- Affected versions: 2.13.0–2.13.8, 2.14.0–2.14.15, 3.0.0–3.0.12, 3.1.0-rc1–3.1.1. Patched: 2.13.9, 2.14.16, 3.0.14, 3.1.2. NVDBleepingComputer
- Severity: public advisories rate this max severity (CVSS 10) and report active scanning; treat as emergency. Daily CyberSecurity
Immediate risk to your environment
- Repo takeovers / artifact poisoning: stolen credentials permit write access if tokens were tied to privileged repo accounts.
- Pipeline pivoting: adversaries can alter Kubernetes manifests/Helm charts, inject backdoors, or roll out rogue workloads via GitOps.
- Lateral movement: reused Git credentials may unlock other developer services (SCM, registries, CI/CD).
Confirm whether you’re exposed (15-minute triage)
- Version check – if your Argo CD controllers aren’t ≥ 2.13.9 / 2.14.16 / 3.0.14 / 3.1.2, you’re in scope. NVD
- RBAC sweep – look for project “get” grants to broad roles (e.g.,
role/user) and any API tokens issued to bots/CI that can read projects. GitHub - Access logs – inspect API server/audit logs for calls to
/api/v1/projects/*/detailedfrom unusual users, service accounts, or external IPs over the last 90 days. GitHub
Hint (example Splunk query)
index=argocd sourcetype=apiserver method=GET uri_path="/api/v1/projects/*/detailed"
Contain, eradicate, recover (first 24–72 hours)
Patch
- Upgrade Argo CD to 2.13.9 / 2.14.16 / 3.0.14 / 3.1.2 (or newer). Roll out to all clusters that host Argo CD components. NVDBleepingComputer
Credential rotation
- Rotate all repository credentials configured in affected Projects (Git, Helm, OCI).
- In SCM, invalidate tokens/personal access tokens, reset passwords, and review OAuth app authorizations.
RBAC hardening
- Remove blanket rules like
projects, get, *from generic user roles; grant least privilege per Project. GitHub - Use short-lived tokens for automation; prefer OIDC with scopes over long-lived tokens.
Network & egress controls
- Restrict Argo CD controller egress to allow-listed repo endpoints; block unknown Git/Helm origins.
- Enforce mTLS or deploy SSH-based repo access where feasible.
Forensics & monitoring
- Review Git commit history/branch protections for unauthorized pushes since the vulnerable window.
- Diff rendered manifests (Kustomize/Helm output) in recent syncs for unexpected images, init containers, or sidecars.
Long-term hardening (CyberDudeBivash blueprint)
- Secret isolation: move repo credentials to scoped, per-project Secrets with read-only least privilege; avoid org-wide credentials.
- Admission control: use OPA/Gatekeeper or Kyverno to block Argo Projects that reference global repo creds.
- Immutable supply chain: adopt sigstore/cosign and image policy to require signed images and block unsigned rollouts.
- Zero-trust GitOps: terminate Argo CD behind SSO, require MFA, and force IP-allowlisting for API access.
- Observability: instrument dashboards for Project API usage, sub-1-day token age reports, and drift alerts on RBAC.
Communication to leadership (one-slide briefing)
- What: Argo CD API exposed repository credentials through a Project details endpoint.
- Why it matters: credentials enable repo tampering → production compromise.
- Status: patching underway; credentials rotated; RBAC tightened; no confirmed malicious changes (pending full audit).
- Next: implement secret scoping, enable CI-driven drift detection, enforce signed artifact policies.
Indicators & signals to watch
- API calls to
/api/v1/projects/{project}/detailedby service accounts that ordinarily don’t manage Projects. GitHub - SCM logs showing token use from new IPs or failed authentications just before successful pushes.
- Argo audit events: unexpected AppOfApps changes, syncs to new Git URLs, or Projects modified without a corresponding change request.
References (authoritative)
- NVD entry with affected & fixed versions. NVD
- GitHub Security Advisory (GHSA-786q-9hcg-v9ff) with root-cause details and endpoint. GitHub+1
- BleepingComputer—fix versions & severity. BleepingComputer
- SecurityOnline.info—CVSS 10 coverage and remediation summary. Daily CyberSecurity
CyberDudeBivash verdict
This is a high-leverage secrets exposure in a central GitOps control plane. Treat CVE-2025-55190 as a supply-chain emergency: patch immediately, rotate credentials, and re-baseline trust in your repos and Projects. Build forward with least privilege, short-lived auth, and signed artifacts to reduce blast radius across clusters.
#ArgoCD #CVE202555190 #GitOps #KubernetesSecurity #SecretsManagement #SupplyChainSecurity #DevSecOps #RBAC #ZeroTrust #CyberDudeBivash
Leave a comment