BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Une vulnérabilité dans Git peut conduire à une exécution de code arbitraire

Une vulnérabilité dans Git peut conduire à une exécution de code arbitraire

Une faiblesse dans la validation de nom de sous-modules Git permet à un assaillant distant d'exécuter du code arbitraire sur les machines des développeurs. De plus, un attaquant peut accéder à une section de la mémoire système. Les deux vulnérabilités ont déjà été corrigées dans Git 2.17.1, 2.16.4, 2.15.2 ainsi que d'autres versions.

Comme rapporté par le chercheur en sécurité Etienne Stalmans, les versions de Git non corrigées ne valident pas le nom des sous-modules. Dès lors :

Un dépôt distant peut retourner des données créées spécifiquement pour créer ou écraser des fichiers sur le système utilisateur cible lorsque le dépôt est cloné, provoquant l'exécution de code arbitraire sur celui-ci.

En effet, Git copie les sous-modules dont les noms sont spécifiés dans $GIT_DIR/.gitmodules dans un répertoire $GIT_DIR/modules. En modifiant le contenu du fichier .gitmodules, il est alors possible de référencer ../ comme nom de sous-module pour faire en sorte que Git écrive celui-ci en dehors du dépôt. Associé à un hook post-checkout malin, cela rend possible d'exécuter du code arbitraire aussitôt après avoir cloné un dépôt.

La correction de ce comportement est la mise en place d'une règle de validation des noms de sous-module pour que Git ignore tout nom qui ne soit pas conforme. Ainsi, ni .. ni les liens symboliques ne sont tolérés. Ceci permet de s'assurer que le répertoire du sous-module n'est pas stocké en dehors de $GIT_DIR.

Stalmans a affirmé qu'il avait pu exécuter du code distant sur Github Pages en exploitant cette vulnérabilité, bien qu'aucune autre exploitation de la vulnérabilité n'ait été rapportée.

La seconde vulnérabilité est spécifique aux dépôts qui utilisent le système de fichiers NTFS et permet d'outrepasser les vérifications de chemins NTFS pour accéder à du contenu aléatoire en mémoire.

La communauté Git a immédiatement fourni les correctifs aux deux vulnérabilités dans la version 2.13.7 de Git, qui ont été appliqués aux versions 2.14.4, 2.15.2, 2.16.4 et 2.17.1. De plus, ces versions rejetteront les push vers les dépôts qui contiennent des fichiers .gitmodules qui comportent des problèmes. Ceci afin :

d'aider les sites hébergeur à protéger leurs clients qui utilisent des versions plus anciennes en empêchant le contenu malin de se répandre

Github et les autres services d'hébergement ont déjà corrigé leurs systèmes.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT