FICHE CVE

CVE-2026-113708

Publiée le 2026-10-20 · Dernière modification le 2026-10-20

🇫🇷 EN BREF

Argo CD (versions 2.7.0 à 3.3.14, 3.4.0-3.4.9, 3.5.0-3.5.3 et 3.6.0-rc1) est un outil GitOps utilisé pour automatiser les déploiements Kubernetes. La faille provient du fait que Kustomize ne parvient pas à séparer correctement les requêtes URL des arguments de ligne de commande lors de la récupération de ressources distantes. Si une ressource distante utilise un transport de fichier local, un attaquant peut injecter un trait d'union initial pour tromper le système et l'inciter à exécuter des commandes arbitraires à l'intérieur du pod `argocd-repo-server`.

Un attaquant disposant de permissions basiques pour consulter une application ou de la possibilité d'effectuer un commit dans un dépôt Git suivi peut parvenir à une exécution complète de code à distance. Cela lui permet de voler les identifiants du dépôt, de modifier des données système ou de faire planter le service, entraînant une perte totale de confidentialité, d'intégrité et de disponibilité. L'attaque est facile à réaliser via le réseau et ne nécessite qu'une authentification de bas niveau, et non des privilèges d'administrateur.

CVSS 3.19.9 CRITIQUE
Type de faiblesse
Publiée2026-10-20
Dernière modification2026-10-20

DÉTAIL DU VECTEUR CVSS

Vecteur d'attaqueRéseau
Complexité d'attaqueFaible
Privilèges requisFaibles
Interaction utilisateurAucune
PortéeModifiée
Impact sur la confidentialitéÉlevé
Impact sur l'intégritéÉlevé
Impact sur la disponibilitéÉlevé

RÉFÉRENCES

Description officielle du NVD (en anglais)

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. From 2.7.0 until 3.3.15, 3.4.10, 3.5.4, and 3.6.0-rc2, Kustomize passes ref or version query values from remote resource, base, or component URLs to git fetch without an end-of-options separator. A leading-hyphen value can be parsed as --upload-pack and execute a command inside argocd-repo-server when the remote uses a local transport such as file://. Git does not run the supplied command for an https:// remote. The local transport does not leave the pod, so blocking repo-server egress does not prevent the execution. The command runs as the repo-server user, can read repository credentials and other process-accessible data, and can return output through manifest-generation errors. An attacker can commit a Kustomization to a Git repository that an Application builds or upload files through POST /api/v1/applications/manifestsWithFiles, also exposed by argocd app diff --local --server-side-generate. The upload path requires only Application get permission on an existing Application, without Application update or sync permission or repository write access. Kustomize 5.0.0 introduced acceptance of file://, whereas 4.5.7 rejects that transport; replacing the affected Kustomize with a newer version alone does not correct the missing option separator. This issue is fixed in versions 3.3.15, 3.4.10, 3.5.4, and 3.6.0-rc2.