Dans un billet de blogue publié mercredi, l'équipe Git note que les deux premières vulnérabilités affectent le mécanisme de formatage de commit de Git et l'analyseur .gitattributes, respectivement. La première faille (CVE-2022-41903) peut être exploitée pour effectuer des écritures arbitraires dans le tas, tandis que la seconde (CVE-2022-23521) peut également être exploitée pour des lectures arbitraires. Les deux failles peuvent entraîner une exécution de code arbitraire, les utilisateurs doivent donc effectuer une mise à jour immédiate. Ces deux problèmes ont également été découverts dans le cadre d'un audit de la base de code Git réalisé par X41.
« Le problème le plus grave découvert permet à un attaquant de déclencher une corruption de la mémoire basée sur le tas pendant les opérations de clonage ou de tirage, ce qui peut entraîner l'exécution de code. Une autre faille critique permet l'exécution de code pendant une opération d'archivage, qui est couramment effectuée par les forges Git », ont déclaré les experts en sécurité de X41. Cet audit a été sponsorisé par l'OSTIF (Open Source Technology Improvement Fund). Les correctifs ont été rédigés par des ingénieurs de l'équipe de recherche en sécurité de GitLab, des ingénieurs de GitHub et des membres de la liste de diffusion git-security.
Selon l'équipe Git, le problème spécifique à Windows (CVE-2022-41953) implique une recherche de $PATH incluant le répertoire de travail actuel, ce qui peut être exploité pour exécuter du code arbitraire lors du clonage de dépôts avec l'interface graphique de Git. Voici ci-dessous plus d'informations sur les vulnérabilités et les correctifs.
CVE-2022-41903
La première série de mises à jour concerne le mécanisme de formatage des commits de Git, utilisé pour afficher des informations arbitraires sur les commits, comme dans git log --format. Lors du traitement de l'un des opérateurs de remplissage (par exemple, %<(, %>(, etc.) un débordement d'entier peut se produire lorsqu'un grand décalage est donné).Cette faille peut être déclenchée directement via git log --format.
Elle peut également être déclenchée indirectement via le mécanisme export-subst de Git, qui applique les modificateurs de formatage aux fichiers sélectionnés lors de l'utilisation de git archive. Ce dépassement d'entier peut entraîner des lectures et des écritures arbitraires du tas, ce qui peut entraîner l'exécution de code à distance.
CVE-2022-23521
Les attributs Git (.gitattributes) sont utilisés pour définir des attributs uniques correspondant à des chemins dans votre dépôt. Ces attributs sont définis par un ou plusieurs fichiers .gitattributes dans votre dépôt. L'analyseur utilisé pour lire ces fichiers présente de multiples débordements d'entiers, qui peuvent se produire lors de l'analyse d'un grand nombre de motifs, d'un grand nombre d'attributs ou d'attributs avec des noms trop longs. Ces débordements peuvent être déclenchés par un fichier .gitattributes malveillant.
Cependant, Git divise automatiquement les lignes à 2KB lors de la lecture de .gitattributes à partir d'un fichier, mais pas lors de son analyse à partir de l'index. L'exploitation réussie de cette vulnérabilité dépend de l'emplacement du fichier .gitattributes en question. Comme dans le cas précédent, ce dépassement d'entier peut entraîner des lectures et des écritures arbitraires du tas, ce qui peut entraîner l'exécution de code à distance.
CVE-2022-41953
Après avoir cloné un dépôt, Git GUI applique automatiquement certains post-traitements au checkout résultant, y compris l'exécution d'un correcteur orthographique, s'il est disponible. Une vulnérabilité spécifique à Windows fait que Git GUI recherche le correcteur orthographique dans l'arbre de travail qui vient d'être extrait, ce qui peut entraîner l'exécution de code non fiable.
Mise à jour vers la dernière version de Git
Selon l'équipe, dans tous les cas, le moyen le plus efficace de se défendre contre les attaques qui tentent d'exploiter ces vulnérabilités est de mettre à jour vers la dernière version de Git (v2.39.1). Si vous ne pouvez pas mettre à jour immédiatement, réduisez votre risque en prenant les mesures suivantes :
- évitez d'invoquer le mécanisme --format directement avec les opérateurs connus, et évitez d'exécuter git archive dans des dépôts non fiables ;
- si vous exposez git archive via le démon git, pensez à le désactiver si vous travaillez avec des dépôts non fiables en exécutant git config --global daemon.uploadArch false ;
- évitez d'utiliser l'interface graphique de Git sous Windows lorsque vous clonez des dépôts non fiables.
Source : GitHub
Et vous ?
Quel est votre avis sur le sujet ?
Voir aussi
GitHub Copilot, l'assistant de programmation basé sur l'IA, sous le feu des critiques, un développeur affirme qu'il émet de nombreux bouts de son code protégé par le droit d'auteur
Un enseignant pointe GitHub Copilot comme l'outil parfait pour les tricheurs lors des évaluations de programmation et ravive les craintes sur la disparition du métier de développeur à cause de l'IA
GitHub va désormais faire usage du terme « main » en lieu et place de « master » pour désigner la branche par défaut des projets et ainsi lutter contre les stéréotypes raciaux sur la plateforme