AccueilActualités informatiqueVulnérabilité dans l'outil GitOps : Argo CD vulnérable via Path Traversal

Vulnérabilité dans l’outil GitOps : Argo CD vulnérable via Path Traversal

L’équipe de recherche en sécurité d’Apiiro a découvert une vulnérabilité dans Argo CD qui permet d’accéder à des répertoires arbitraires dans le référentiel de l’outil GitOps. Argo CD est un outil CD (Continuous Delivery) open source pour Kubernetes. Il s’occupe de la distribution et de la gestion du cycle de vie des applications dans le cluster Kubernetes.

La faille se trouve dans la manière dont l’outil évalue les fichiers et les URI. Il est possible d’exploiter l’évasion de répertoire (Path Traversal) avec des chartes Helm manipulées. La structure monolithique et déterministe du serveur de dépôt d’Argo CD permet aux attaquants d’accéder, entre autres, à des fichiers values.yaml dans d’autres répertoires, qui contiennent potentiellement des secrets.

Sommaire

La première étape de l’attaque est un graphique en casque avec un nom de chemin correspondant comme valeur, qui atterrit comme configuration fictive dans Argo CD. Après avoir accédé aux secrets via l’éclatement du répertoire, d’autres attaques sont ensuite envisageables, notamment via l’élévation de privilèges.

L’attaque via des chartes de casque manipulées contourne le détecteur d’éclatement de répertoire pour accéder à d’autres référentiels.

(Image : apiiro)

En principe, l’équipe d’Argo-CD est tout à fait consciente du danger que représente le Path Traversal, et le logiciel vérifie que les accès aux fichiers ne se font que dans le même répertoire ou ses sous-répertoires. Cependant, le logiciel vérifie d’abord si le chemin d’accès défini par le champ valueFiles est un URI.

C’est à cela que sert la fonction ParseRequestURI de la bibliothèque standard de Go. Elle part du principe que l’URL provient d’une requête HTTP et interprète la valeur comme un URI ou un chemin absolu vers un répertoire. Pour simplifier, si cela ressemble à une URI et que la fonction de la bibliothèque ne génère pas de message d’erreur, Argo CD fait passer le résultat sans autre vérification et donne finalement accès au fichier listé par exemple comme /dir/values.yaml, dont il résout l’emplacement via le chemin absolu.

En plus de l’accès direct à des fichiers étrangers, il existe helm template renvoie des messages d’erreur détaillés à partir desquels les attaquants peuvent déduire des structures dans les répertoires.

La communauté Argo-CD semble avoir réagi très rapidement en proposant des correctifs : Le 30 janvier, Apiiro a signalé la faille à l’équipe, qui l’a vérifiée et confirmée le même jour. Le 3 février, le correctif est finalement apparu, et dans la foulée, Apiiro a publié la vulnérabilité.

Ceux qui utilisent Argo CD devraient passer à la version 2.1.9, 2.2.4 ou 2.3.0. Cette dernière n’est cependant pas encore définitive, mais seulement disponible en tant que Release Candidate fraîche.

De plus amples détails sont disponibles sur le blog d’Apiiro et sur la page de sécurité correspondante du référentiel Argo-CD. La vulnérabilité est répertoriée sous CVE-2022-24348, mais l’entrée dans la base de données centrale des vulnérabilités de Mitre était encore vide au moment de l’écriture de cet article.

Plus d'articles