GHSA-g88p-r42r-ppp9

Repository Credentials Race Condition Crashes Argo CD Server

At a glance

Published
Updated
CVE
CVE-2025-55191
Aliases
BIT-argo-cd-2025-55191, GO-2025-3994
CVSS_V3
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Description

### Summary A race condition in the repository credentials handler can cause the Argo CD server to panic and crash when concurrent operations are performed on the same repository URL. ### Details The vulnerability is located in numerous repository related handlers in the `util/db/repository_secrets.go` file. For example, in the `secretToRepoCred` function. The issue manifests as a concurrent map access panic: ``` concurrent map read and map write ... goroutine 1104 [running]: github.com/argoproj/argo-cd/v2/util/db.(*secretsRepositoryBackend).secretToRepoCred(0xc000e50ea8?, 0xc000c65540) /go/src/github.com/argoproj/argo-cd/util/db/repository_secrets.go:404 +0x31e ``` The race condition occurs due to: 1. Concurrent repository credential operations (create/update/delete) accessing the same map 2. Kubernetes informer re-syncs happening simultaneously 3. Background watchers updating the same secret data 4. No mutex protection for map access A valid API token with `repositories` resource permissions (`create`, `update`, or `delete` actions) is required to trigger the race condition. ### Impact This vulnerability causes the entire Argo CD server to crash and become unavailable. Attackers can repeatedly and continuously trigger the race condition to maintain a denial-of-service state, disrupting all GitOps operations. Default ArgoCD configuration is vulnerable. The affected code was originally introduced in [PR #6103](https://github.com/argoproj/argo-cd/pull/6103) and released in [v2.1.0](https://github.com/argoproj/argo-cd/releases/tag/v2.1.0). This data race was addressed by deep-copying the `Secret` objects before reading/writing. ### Credits This vulnerability was found, reported and fixed by: @thevilledev The Argo team would like to thank him for his responsible disclosure and constructive communications during the resolve of this issue.

Affected packages

PackageVersions
Go · github.com/argoproj/argo-cd/v2introduced 2.1.0, fixed 2.14.20
Go · github.com/argoproj/argo-cd/v3introduced 3.2.0-rc1, fixed 3.2.0-rc2
Go · github.com/argoproj/argo-cd/v3introduced 3.1.0-rc1, fixed 3.1.8
Go · github.com/argoproj/argo-cd/v3introduced 3.0.0-rc1, fixed 3.0.19

References

Sources

SourceLicence
OSV.devCC-BY 4.0 — GitHub Advisory Database