Miggo Logo

CVE-2024-32476:
Argo CD vulnerable to a Denial of Service via malicious jqPathExpressions in ignoreDifferences

6.5

CVSS Score
3.1

Basic Information

EPSS Score
0.62153%
Published
4/26/2024
Updated
5/14/2024
KEV Status
No
Technology
TechnologyGo

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Package NameEcosystemVulnerable VersionsFirst Patched Version
github.com/argoproj/argo-cd/v2go>= 2.10.0, < 2.10.82.10.8
github.com/argoproj/argo-cd/v2go>= 2.9.0, < 2.9.132.9.13
github.com/argoproj/argo-cd/v2go< 2.8.172.8.17

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from unconstrained execution of jqPathExpressions. The jqNormalizerPatch.Apply function previously executed jq queries without a timeout, allowing specially crafted expressions (like 'until(true == false; [.] + [1])') to consume excessive resources. The NewIgnoreNormalizer function was responsible for creating these vulnerable patches without timeout parameters. The patch adds a JQExecutionTimeout field and context-based execution limits, confirming these were the vulnerable points.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

### Imp**t *oS vuln vi* OOM usin* jq in i*nor**i***r*n**s. ``` i*nor**i***r*n**s: - *roup: *pps kin*: **ploym*nt jqP*t**xpr*ssions: - 'until(tru* == **ls*; [.] + [*])' ``` ### P*t***s * p*t** *or t*is vuln*r**ility **s ***n

Reasoning

T** vuln*r**ility st*ms *rom un*onstr*in** *x**ution o* `jqP*t**xpr*ssions`. T** `jqNorm*liz*rP*t**.*pply` *un*tion pr*viously *x**ut** `jq` qu*ri*s wit*out * tim*out, *llowin* sp**i*lly *r**t** *xpr*ssions (lik* 'until(tru* == **ls*; [.] + [*])') to