☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 4.3 🐛 CWE-209
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2024-36106

CVE-2024-36106 Information Disclosure in Argo cd
📅 PUBLISHED: 2024-06-06 15:09 UTC 🔄 UPDATED: 2026-09-23 20:35 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.41%
👁️
0.41% probability
10.2× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Patch available — upgrade to latest release
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
4.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-36106 is an information disclosure vulnerability in Argo CD, a declarative, GitOps continuous delivery tool for Kubernetes. The vulnerability allows authenticated users to enumerate cluster names by inspecting error messages. Additionally, if an attacker knows the names of clusters, they can enumerate the names of projects that have project-scoped clusters. This vulnerability has a CVSS score of 4.3 (Medium) and is fixed in Argo CD versions 2.11.3, 2.10.12, and 2.9.17.

The vulnerability stems from improper handling of error messages when querying cluster information. When an authenticated user attempts to access a cluster that does not exist or for which they lack permissions, the error message may inadvertently reveal the names of existing clusters or projects. This information can be used by an attacker to map the internal infrastructure and plan further attacks.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

Argo CD is a Go-based application distributed as a container image and via the Argo CD CLI. The vulnerability is in the core application logic, not in a specific package dependency. However, organizations using Argo CD should ensure they are using a patched version to prevent information disclosure. The fix is included in the official Argo CD releases, and users should update their deployments accordingly.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
  • Base Score: 4.3 (Medium)
  • Attack Vector: Network (AV:N)
  • Attack Complexity: Low (AC:L)
  • Privileges Required: Low (PR:L)
  • User Interaction: None (UI:N)
  • Scope: Unchanged (S:U)
  • Confidentiality Impact: Low (C:L)
  • Integrity Impact: None (I:N)
  • Availability Impact: None (A:N)

The threat level is Medium due to the low attack complexity and the potential for information gathering. While the vulnerability does not allow direct code execution or data modification, it can be used to map internal infrastructure, which may facilitate further attacks.

Deep Dive & Mechanics

The vulnerability exists in the Argo CD API server, specifically in the endpoints that handle cluster and project queries. When an authenticated user makes a request to list or access clusters, the server validates the user's permissions. If the user does not have access to a particular cluster, the server returns an error message. However, the error message may include the name of the cluster or project, allowing the user to infer its existence.

For example, if a user attempts to access a cluster named "production-cluster" and does not have permissions, the error message might say "cluster 'production-cluster' not found" or "access denied to cluster 'production-cluster'". This reveals that the cluster exists. Similarly, if a user knows a cluster name and tries to list projects associated with it, the error message may reveal project names.

The vulnerability is particularly dangerous in multi-tenant environments where different teams or customers have access to different clusters and projects. An attacker with low-privileged access can use this vulnerability to map the entire infrastructure, identifying high-value targets.

Vulnerable vs. Patched Code

The vulnerable code is in the Argo CD API server's cluster and project handlers. The fix involves sanitizing error messages to remove any information that could be used for enumeration.

Vulnerable Code (Go):

func (s *Server) GetCluster(ctx context.Context, q *cluster.ClusterQuery) (*cluster.Cluster, error) {
    cluster, err := s.db.GetCluster(ctx, q.Name)
    if err != nil {
        return nil, fmt.Errorf("cluster '%s' not found: %v", q.Name, err)
    }
    // ... rest of the function
}

Patched Code (Go):

func (s *Server) GetCluster(ctx context.Context, q *cluster.ClusterQuery) (*cluster.Cluster, error) {
    cluster, err := s.db.GetCluster(ctx, q.Name)
    if err != nil {
        return nil, fmt.Errorf("cluster not found")
    }
    // ... rest of the function
}

The patched code removes the cluster name from the error message, preventing enumeration.

Exploitation & Lab Setup

Red Team

To exploit this vulnerability, an attacker needs authenticated access to the Argo CD API server. The attacker can then send requests to enumerate clusters and projects.

Step 1: Authenticate to Argo CD

argocd login <argocd-server> --username <user> --password <pass>

Step 2: Enumerate clusters by name

# Attempt to get a cluster with a guessed name
argocd cluster get <cluster-name>
# If the cluster exists but the user lacks permissions, the error message may reveal the name

Step 3: Enumerate projects for known clusters

# List projects associated with a known cluster
argocd proj list --cluster <cluster-name>
# Error messages may reveal project names

Blue Team

To detect exploitation attempts, monitor Argo CD API server logs for unusual error messages or repeated requests to non-existent clusters.

Detection via Log Analysis:

# Search for error messages containing cluster names
grep "cluster.*not found" /var/log/argocd-server.log | grep -v "cluster not found"

Detection via Network Traffic: Monitor for repeated API calls to /api/v1/clusters/{name} with different cluster names.

Indicators of Compromise (IOCs)

  • Log Entries: Error messages containing cluster or project names in the Argo CD API server logs.
  • API Calls: Repeated requests to /api/v1/clusters/{name} or /api/v1/projects with different parameters.
  • Network Traffic: Unusual patterns of API calls from a single user or IP address.

Detection Engineering

YARA Rule

rule CVE_2024_36106_ArgoCD_Enumeration {
    meta:
        description = "Detects Argo CD error messages that may indicate cluster enumeration"
        author = "Valters IT"
        date = "2024-01-01"
        reference = "CVE-2024-36106"
    strings:
        $error1 = "cluster '" ascii
        $error2 = "not found" ascii
        $error3 = "access denied to cluster" ascii
    condition:
        any of ($error*) and #error1 > 5
}

Sigma Rule

title: Argo CD Cluster Enumeration Attempt
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects multiple attempts to access non-existent or unauthorized clusters in Argo CD
author: Valters IT
logsource:
    product: argo-cd
    service: server
detection:
    selection:
        event_id: 1
        message|contains: "cluster"
    condition: selection | count() > 10 by src_ip within 5m
falsepositives:
    - Legitimate administrative actions
level: medium

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2024-36106 Argo CD Cluster Enumeration"; flow:to_server,established; content:"/api/v1/clusters/"; http_uri; pcre:"/\/api\/v1\/clusters\/[a-zA-Z0-9_-]+$/"; threshold: type both, track by_src, count 10, seconds 300; sid:1000001; rev:1;)

Remediation & Mitigation

  1. Upgrade Argo CD: Update to version 2.11.3, 2.10.12, or 2.9.17 or later.
  2. Restrict API Access: Use network policies and authentication to limit access to the Argo CD API server.
  3. Monitor Logs: Implement logging and monitoring to detect enumeration attempts.
  4. Apply Principle of Least Privilege: Ensure users have only the permissions they need.
  5. Use Web Application Firewall (WAF): Deploy a WAF to block suspicious API requests.

Valters IT
Securing Your Digital Future

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2024-36106/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.