Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en Argo CD (CVE-2024-28175)

Gravedad CVSS v3.1:
CRÍTICA
Tipo:
CWE-79 Neutralización incorrecta de la entrada durante la generación de la página web (Cross-site Scripting)
Fecha de publicación:
13/03/2024
Última modificación:
09/01/2025

Descripción

Argo CD es una herramienta declarativa de entrega continua de GitOps para Kubernetes. Debido al filtrado inadecuado de los protocolos URL de los enlaces especificados en las anotaciones `link.argocd.argoproj.io` en el componente de resumen de la aplicación, un atacante puede lograr Cross Site Scripting con permisos elevados. Todas las versiones sin parches de Argo CD que comienzan con v1.0.0 son vulnerables a un error de Cross Site Scripting (XSS) que permite a un usuario malintencionado inyectar un enlace javascript: en la interfaz de usuario. Cuando un usuario víctima hace clic en él, el script se ejecutará con los permisos de la víctima (hasta administrador incluido). Esta vulnerabilidad permite a un atacante realizar acciones arbitrarias en nombre de la víctima a través de la API, como crear, modificar y eliminar recursos de Kubernetes. Se lanzó un parche para esta vulnerabilidad en las versiones de Argo CD v2.10.3 v2.9.8 y v2.8.12. No existen soluciones alternativas completamente seguras además de actualizar. La alternativa más segura, si no es posible la actualización, sería crear un controlador de admisión de Kubernetes para rechazar cualquier recurso con una anotación que comience con link.argocd.argoproj.io o rechazar el recurso si el valor utiliza un protocolo URL inadecuado. Esta validación deberá aplicarse en todos los clústeres gestionados por ArgoCD.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:argoproj:argo_cd:*:*:*:*:*:*:*:* 1.0.0 (incluyendo) 2.8.12 (excluyendo)
cpe:2.3:a:argoproj:argo_cd:*:*:*:*:*:*:*:* 2.9.0 (incluyendo) 2.9.8 (excluyendo)
cpe:2.3:a:argoproj:argo_cd:*:*:*:*:*:*:*:* 2.10.0 (incluyendo) 2.10.3 (excluyendo)