CVE-2024-36106: Argo-cd authenticated users can enumerate clusters by name
4.3
CVSS Score
3.1
Basic Information
CVE ID
GHSA ID
EPSS Score
0.63652%
CWE
Published
6/6/2024
Updated
6/6/2024
KEV Status
No
Technology
Go
Technical Details
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
| Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
|---|---|---|---|
| github.com/argoproj/argo-cd | go | >= 0.11.0, < 2.9.17 | 2.9.17 |
| github.com/argoproj/argo-cd | go | >= 2.10.0, < 2.10.12 | 2.10.12 |
| github.com/argoproj/argo-cd | go | >= 2.11.0, < 2.11.3 | 2.11.3 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability stemmed from error message differentiation between cluster existence and permission states. The original implementation in Get() used a two-step process: 1) Check cluster existence via getClusterWith403IfNotExist, which would return a 'not found' error for non-existent clusters, and 2) Perform permission checks. This created distinct error messages observable through the API. The patch consolidates these checks into getClusterAndVerifyAccess that returns uniform permission errors regardless of cluster existence. The test cases explicitly verify that all error paths now return identical permission denial messages to prevent enumeration.