// For flags

CVE-2024-29893

Uncontrolled Resource Consumption vulnerability in ArgoCD's repo server

Severity Score

6.5
*CVSS v3.1

Exploit Likelihood

*EPSS

Affected Versions

*CPE

Public Exploits

0
*Multiple Sources

Exploited in Wild

-
*KEV

Decision

Track
*SSVC
Descriptions

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. All versions of ArgoCD starting from v2.4 have a bug where the ArgoCD repo-server component is vulnerable to a Denial-of-Service attack vector. Specifically, it's possible to crash the repo server component through an out of memory error by pointing it to a malicious Helm registry. The loadRepoIndex() function in the ArgoCD's helm package, does not limit the size nor time while fetching the data. It fetches it and creates a byte slice from the retrieved data in one go. If the registry is implemented to push data continuously, the repo server will keep allocating memory until it runs out of it. A patch for this vulnerability has been released in v2.10.3, v2.9.8, and v2.8.12.

Argo CD es una herramienta declarativa de entrega continua de GitOps para Kubernetes. Todas las versiones de ArgoCD a partir de la v2.4 tienen un error por el cual el componente del servidor de repositorio de ArgoCD es vulnerable a un vector de ataque de denegación de servicio. Específicamente, es posible bloquear el componente del servidor de repositorio debido a un error de falta de memoria al señalarlo a un registro de Helm malicioso. La función loadRepoIndex() en el paquete helm de ArgoCD no limita el tamaño ni el tiempo al recuperar los datos. Lo recupera y crea un segmento de bytes a partir de los datos recuperados de una sola vez. Si el registro se implementa para enviar datos continuamente, el servidor de repositorio seguirá asignando memoria hasta que se agote. Se lanzó un parche para esta vulnerabilidad en las versiones 2.10.3, 2.9.8 y 2.8.12.

The ArgoCD repo-server component is vulnerable to a denial of service attack, where it is possible to crash the repo server component through an out-of-memory error by pointing it to a malicious Helm registry. The loadRepoIndex() function in the ArgoCD's helm package does not limit the size or time while fetching the data. It fetches and creates a byte slice from the retrieved data in one go. If the registry is implemented to push data continuously, the repo server will keep allocating memory until it runs out.

*Credits: N/A
CVSS Scores
Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High
* Common Vulnerability Scoring System
SSVC
  • Decision:Track
Exploitation
None
Automatable
No
Tech. Impact
Partial
* Organization's Worst-case Scenario
Timeline
  • 2024-03-21 CVE Reserved
  • 2024-03-29 CVE Published
  • 2024-03-30 EPSS Updated
  • 2024-08-02 CVE Updated
  • ---------- Exploited in Wild
  • ---------- KEV Due Date
  • ---------- First Exploit
CWE
  • CWE-400: Uncontrolled Resource Consumption
CAPEC
Affected Vendors, Products, and Versions
Vendor Product Version Other Status
Vendor Product Version Other Status <-- --> Vendor Product Version Other Status
Argoproj
Search vendor "Argoproj"
Argo-cd
Search vendor "Argoproj" for product "Argo-cd"
>= 2.4.0 < 2.8.14
Search vendor "Argoproj" for product "Argo-cd" and version " >= 2.4.0 < 2.8.14"
en
Affected
Argoproj
Search vendor "Argoproj"
Argo-cd
Search vendor "Argoproj" for product "Argo-cd"
>= 2.9.0 < 2.9.10
Search vendor "Argoproj" for product "Argo-cd" and version " >= 2.9.0 < 2.9.10"
en
Affected
Argoproj
Search vendor "Argoproj"
Argo-cd
Search vendor "Argoproj" for product "Argo-cd"
>= 2.10.0 < 2.10.5
Search vendor "Argoproj" for product "Argo-cd" and version " >= 2.10.0 < 2.10.5"
en
Affected