Une vulnérabilité critique a été identifiée dans Git (CVE-2021-29468), qui se manifeste uniquement lors de la compilation pour l'environnement Cygwin (une bibliothèque pour l'émulation de l'API Linux de base sous Windows et un ensemble de programmes Linux typiques pour Windows). Cette vulnérabilité permet à un attaquant d'exécuter du code malveillant lors de l'extraction de données (« git checkout ») à partir d'un dépôt sous le contrôle de l'attaquant. Le problème a été résolu dans le paquet git 2.31.1-2 pour Cygwin. Dans le projet principal Git, le problème n'est pas encore corrigé (il est peu probable que quelqu'un compile Git pour Cygwin par ses propres moyens au lieu d'utiliser un paquet précompilé).
La vulnérabilité est causée par le traitement de l'environnement Cygwin comme un système de type Unix, et non comme Windows, ce qui entraîne l'absence de restrictions sur l'utilisation du caractère ‘\’ dans le chemin, tandis que dans Cygwin, tout comme dans Windows, ce caractère peut être utilisé pour séparer les répertoires. En conséquence, en créant un dépôt spécialement modifié contenant des liens symboliques et des fichiers avec le caractère de barre oblique inversée, il est possible de provoquer l'écrasement de fichiers arbitraires lors du chargement de ce dépôt dans Cygwin (une vulnérabilité similaire dans Git pour Windows a été corrigée en 2019). En ayant la possibilité d'écraser des fichiers, un attaquant peut redéfinir les appels de hook dans git et obtenir l'exécution de code arbitraire dans le système.
Source : opennet.ru
