Elle affecte les utilisateurs travaillant sur des machines multi-utilisateurs
L’important Patch d’avril de Microsoft comprend un bogue qui a déjà été exploité et un second qui a été divulgué publiquement. La première, cependant : CVE-2022-24521, que les chercheurs en sécurité de la NSA et de CrowdStrike ont signalé à Microsoft serait activement en cours d’exploitation. La CVE-2022-24765 affecte les utilisateurs travaillant sur des machines multi-utilisateurs. Il s’agit d’une vulnérabilité d’élévation de privilège, qui se trouve dans le pilote du système de fichiers Common Log de Windows. Une mise à jour de Git aurait été effectuée pour remédier à la vulnérabilité.
« La dernière version de maintenance Git v2.35.2, ainsi que les anciennes versions de maintenance v2.30.3, v2.31.2, v2.32.1, v2.33.2, et v2.34.2, sont maintenant disponibles. Ces versions de maintenance ont pour but de résoudre les problèmes de sécurité décrits dans CVE-2022-24765 », écrit Junio C Hamano, Ingénieur logiciel. Comme indiqué précédemment, la mise à jour concerne uniquement la CVE-2022-24765, un bug intéressant qui affecte le fork Git pour Windows.
L’équipe Git a été un peu plus directe au sujet de la vulnérabilité, et a averti que « le simple fait d’avoir une invite de Git qui exécute git status (ou ‘git diff’) et de naviguer vers un répertoire qui est censé ne pas être un arbre de travail Git, ou d’ouvrir un tel répertoire dans un éditeur ou un IDE tel que VS Code ou Atom, va potentiellement exécuter des commandes définies par cet autre utilisateur ».
La faille affecte principalement les machines multi-utilisateurs fonctionnant probablement sous Windows (probablement en raison de la façon dont le système de fichiers du système d’exploitation fonctionne.) En fin de compte, il pourrait s’agir d’un problème de code arbitraire, même s’il faut avoir accès au disque pour le mettre en œuvre.
Pour résoudre le problème, l’équipe Git recommande une mise à jour. Alternativement, un utilisateur pourrait créer ce dossier .git lui-même et supprimer l’accès en lecture/écriture comme solution de contournement ou « définir ou étendre GIT_CEILING_DIRECTORIES pour couvrir le répertoire parent du profil utilisateur », selon le NIST.
Détail de CVE-2022-24765
Git for Windows est un fork de Git contenant des correctifs spécifiques à Windows. CVE-2022-24765 affecte les utilisateurs travaillant sur des machines multi-utilisateurs, où des parties non fiables ont un accès en écriture sur le même disque dur. Ces personnes non autorisées pourraient créer le dossier C:\.git, qui serait récupéré par des opérations Git exécutées soi-disant en dehors d’un dépôt lors de la recherche d’un répertoire Git.
Git respecterait alors toute configuration dans ledit répertoire Git. Les utilisateurs de Git Bash qui configurent GIT_PS1_SHOWDIRTYSTATE sont également vulnérables. Les utilisateurs qui ont installé posh-git sont vulnérables simplement en démarrant un PowerShell. Les utilisateurs d’IDE tels que Visual Studio sont vulnérables : la simple création d’un nouveau projet permet déjà de lire et de respecter la configuration spécifiée dans C:\.git\config.
Les utilisateurs du fork Microsoft de Git sont vulnérables simplement en démarrant un Git Bash. Le problème a été corrigé dans Git pour Windows v2.35.2. Les utilisateurs qui ne peuvent pas faire de mise à jour peuvent créer le dossier .git sur tous les lecteurs où des commandes Git sont exécutées, et supprimer l’accès en lecture/écriture de ces dossiers comme solution de contournement. Sinon, définissez ou étendez GIT_CEILING_DIRECTORIES pour couvrir le répertoire _parent_ du profil utilisateur, par exemple C:\Users si le profil utilisateur se trouve dans C:\Users\my-user-name.
Le NIST poursuit en énumérant les produits potentiellement vulnérables, dont Visual Studio. « Les utilisateurs du fork Microsoft de Git sont vulnérables simplement en démarrant un Bash Git ». Selon l’équipe Git, si l’utilisateur ne peut pas effectuer la mise à niveau immédiatement, les moyens les plus efficaces de réduire le risque sont les suivants :
- Définissez la variable d’environnement GIT_CEILING_DIRECTORIES pour qu’elle contienne le répertoire parent de votre profil utilisateur (c’est-à-dire /Users sur macOS, /home sous Linux, et C:\Users sous Windows) ;
- Évitez d’exécuter Git sur des machines multi-utilisateurs lorsque votre répertoire de travail actuel ne se trouve pas dans un dépôt de confiance.
Notons que de nombreux outils (tels que l’installation Git pour Windows de Git Bash, posh-git et Visual Studio) exécutent des commandes Git sous le capot. Si l’utilisateur se trouve sur une machine multi-utilisateurs, il est recommandé d’éviter d’utiliser ces outils jusqu’à ce qu’une mise à jour à la dernière version soit effectuée.
source : developpez