// For flags

CVE-2023-40584

Denial of Service to Argo CD 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 continuous deployment 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, the said component extracts a user-controlled tar.gz file without validating the size of its inner files. As a result, a malicious, low-privileged user can send a malicious tar.gz file that exploits this vulnerability to the repo-server, thereby harming the system's functionality and availability. Additionally, the repo-server is susceptible to another vulnerability due to the fact that it does not check the extracted file permissions before attempting to delete them. Consequently, an attacker can craft a malicious tar.gz archive in a way that prevents the deletion of its inner files when the manifest generation process is completed. A patch for this vulnerability has been released in versions 2.6.15, 2.7.14, and 2.8.3. Users are advised to upgrade. The only way to completely resolve the issue is to upgrade, however users unable to upgrade should configure RBAC (Role-Based Access Control) and provide access for configuring applications only to a limited number of administrators. These administrators should utilize trusted and verified Helm charts.

Argo CD es una implementación continua declarativa 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, dicho componente extrae un archivo tar.gz controlado por el usuario sin validar el tamaño de sus archivos internos. Como resultado, un usuario malicioso y con pocos privilegios puede enviar un archivo tar.gz malicioso que aproveche esta vulnerabilidad al servidor de repositorio, dañando así la funcionalidad y disponibilidad del sistema. Además, el servidor del repositorio es susceptible a otra vulnerabilidad debido a que no verifica los permisos de los archivos extraídos antes de intentar eliminarlos. En consecuencia, un atacante puede crear un archivo tar.gz malicioso de manera que impida la eliminación de sus archivos internos cuando se completa el proceso de generación del manifiesto. Se lanzó un parche para esta vulnerabilidad en las versiones 2.6.15, 2.7.14 y 2.8.3. Se recomienda a los usuarios que actualicen. La única forma de resolver completamente el problema es actualizar; sin embargo, los usuarios que no puedan actualizar deben configurar RBAC (Control de Acceso Basado en Roles) y brindar acceso para configurar aplicaciones solo a un número limitado de administradores. Estos administradores deben utilizar gráficos Helm confiables y verificados.

A flaw was found in ArgoCD, where it failed to properly validate the user-controlled tar.gz file uploaded to the repo-server component. As a result, a maliciously crafted tar.gz file sent by a low-privileged user may result in resource starvation and further denial of service of the ArgoCD server. Additionally, the lack of permissions checking for the inner files in the tar.gz file may lead to an attacker creating files that cannot be further deleted from the server.

*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
  • 2023-08-16 CVE Reserved
  • 2023-09-07 CVE Published
  • 2024-09-13 EPSS Updated
  • 2024-09-26 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
Linuxfoundation
Search vendor "Linuxfoundation"
Argo Continuous Delivery
Search vendor "Linuxfoundation" for product "Argo Continuous Delivery"
>= 2.4.0 < 2.6.15
Search vendor "Linuxfoundation" for product "Argo Continuous Delivery" and version " >= 2.4.0 < 2.6.15"
kubernetes
Affected
Linuxfoundation
Search vendor "Linuxfoundation"
Argo Continuous Delivery
Search vendor "Linuxfoundation" for product "Argo Continuous Delivery"
>= 2.7.0 < 2.7.14
Search vendor "Linuxfoundation" for product "Argo Continuous Delivery" and version " >= 2.7.0 < 2.7.14"
kubernetes
Affected
Linuxfoundation
Search vendor "Linuxfoundation"
Argo Continuous Delivery
Search vendor "Linuxfoundation" for product "Argo Continuous Delivery"
>= 2.8.0 < 2.8.3
Search vendor "Linuxfoundation" for product "Argo Continuous Delivery" and version " >= 2.8.0 < 2.8.3"
kubernetes
Affected