CVE-2025-55190: Argo CD's Project API Token Exposes Repository Credentials
10
Basic Information
Technical Details
Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
---|---|---|---|
github.com/argoproj/argo-cd/v2 | go | >= 2.13.0, < 2.13.9 | 2.13.9 |
github.com/argoproj/argo-cd/v2 | go | >= 2.14.0, < 2.14.16 | 2.14.16 |
github.com/argoproj/argo-cd/v3 | go | < 3.0.14 | 3.0.14 |
github.com/argoproj/argo-cd/v3 | go | >= 3.1.0-rc1, < 3.1.2 | 3.1.2 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability lies in the GetDetailedProject
function within server/project/project.go
. This function, which serves the /api/v1/projects/{project}/detailed
API endpoint, was returning repository and cluster information without redacting sensitive credentials. The provided patch e8f86101f5378662ae6151ce5c3a76e9141900e8
clearly shows that the fix involves iterating through the repositories and clusters and applying a Sanitized()
method to each before including them in the API response. This Sanitized()
method, modified and introduced in pkg/apis/application/v1alpha1/repository_types.go
and pkg/apis/application/v1alpha1/types.go
respectively, is responsible for removing the sensitive fields. Therefore, the GetDetailedProject
function is the exact location where the vulnerability existed, as it was the function that failed to perform the necessary sanitization, leading to the information disclosure.
Vulnerable functions
project.Server.GetDetailedProject
server/project/project.go