CVE-2025-55190

9.9 CRITICAL

📋 TL;DR

This CVE allows API tokens with project-level permissions in Argo CD to retrieve sensitive repository credentials (usernames, passwords) through the project details API endpoint, even without explicit secrets access. It affects Argo CD versions 2.13.0-2.13.8, 2.14.0-2.14.15, 3.0.0-3.0.12, and 3.1.0-rc1-3.1.1. Any organization using these vulnerable Argo CD versions is at risk of credential exposure.

💻 Affected Systems

Products:
  • Argo CD
Versions: 2.13.0 through 2.13.8, 2.14.0 through 2.14.15, 3.0.0 through 3.0.12, 3.1.0-rc1 through 3.1.1
Operating Systems: Any OS running Argo CD
Default Config Vulnerable: ⚠️ Yes
Notes: Affects any token with project get permissions, including global permissions like 'p, role/user, projects, get, *, allow'

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers gain access to repository credentials, potentially compromising source code, deploying malicious containers, or accessing other connected systems using those credentials.

🟠

Likely Case

Internal users or compromised tokens expose repository credentials, leading to unauthorized access to source code repositories and potential supply chain attacks.

🟢

If Mitigated

With proper network segmentation and minimal permissions, impact is limited to specific repositories rather than full infrastructure compromise.

🌐 Internet-Facing: HIGH
🏢 Internal Only: HIGH

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Requires valid API token with project permissions, but exploitation is straightforward via API calls.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.13.9, 2.14.16, 3.0.14, 3.1.2

Vendor Advisory: https://github.com/argoproj/argo-cd/security/advisories/GHSA-786q-9hcg-v9ff

Restart Required: Yes

Instructions:

1. Identify current Argo CD version. 2. Upgrade to patched version matching your major version. 3. Restart Argo CD components. 4. Verify fix by testing API endpoint behavior.

🔧 Temporary Workarounds

Restrict Project Permissions

all

Temporarily remove or restrict 'projects, get' permissions from all tokens until patching.

# Review and modify RBAC configurations to remove vulnerable permissions
# Example: Remove 'p, role/user, projects, get, *, allow' from argocd-rbac-cm ConfigMap

🧯 If You Can't Patch

  • Rotate all repository credentials stored in Argo CD immediately
  • Implement network controls to restrict API access to trusted IPs only

🔍 How to Verify

Check if Vulnerable:

Check Argo CD version and test if API tokens with project permissions can retrieve repository credentials via project details endpoint.

Check Version:

argocd version --client

Verify Fix Applied:

After patching, verify that API tokens with only project permissions can no longer retrieve repository credentials through the project details API.

📡 Detection & Monitoring

Log Indicators:

  • Unusual API calls to project details endpoint from unexpected tokens
  • Multiple failed credential usage attempts from new IPs

Network Indicators:

  • Unusual outbound connections to repository services from Argo CD pods

SIEM Query:

source="argo-cd" AND (api_endpoint="/api/v1/projects" OR message="project details") AND status=200

🔗 References

📤 Share & Export