GitHub: une vulnérabilité critique expose plus de 4 000 dépôts à une attaque de repojacking

Une nouvelle vulnérabilité révélée dans GitHub pourrait avoir exposé des milliers de dépôts au risque d'attaques de repojacking, selon de nouvelles découvertes.

La faille "pourrait permettre à un attaquant d'exploiter une condition de course dans les opérations de création de référentiel et de renommage de nom d'utilisateur de GitHub", a déclaré Elad Rapoport, chercheur en sécurité chez Checkmarx, dans un rapport technique.

"L'exploitation réussie de cette vulnérabilité a un impact sur la communauté open-source en permettant le détournement de plus de 4 000 paquets de code dans des langages tels que Go, PHP et Swift, ainsi que des actions GitHub."

Après une divulgation responsable le 1er mars 2023, la plateforme d'hébergement de code appartenant à Microsoft a résolu le problème le 1er septembre 2023.

Le repojacking, abréviation de repository hijacking, est une technique qui permet à un acteur menaçant de contourner un mécanisme de sécurité appelé "popular repository namespace retirement" (retrait de l'espace de noms du dépôt populaire) et de prendre finalement le contrôle d'un dépôt.

Cette mesure de protection empêche les autres utilisateurs de créer un référentiel portant le même nom qu'un référentiel ayant plus de 100 clones au moment où le compte de l'utilisateur est renommé. En d'autres termes, la combinaison du nom d'utilisateur et du nom du référentiel est considérée comme "retirée".

Si cette mesure de protection est trivialement contournée, elle pourrait permettre à des acteurs menaçants de créer de nouveaux comptes avec le même nom d'utilisateur et de télécharger des référentiels malveillants, ce qui pourrait conduire à des attaques de la chaîne d'approvisionnement en logiciels.

La nouvelle méthode décrite par Checkmarx tire parti d'une condition de concurrence potentielle entre la création d'un dépôt et le renommage d'un nom d'utilisateur pour réaliser le repojacking. Plus précisément, cette méthode comporte les étapes suivantes:

  • la victime possède l'espace de noms "victim_user/repo"
  • la victime renomme "victim_user" en "renamed_user"
  • le référentiel "victim_user/repo" est désormais supprimé
  • un cybercriminel avec le nom d'utilisateur "attacker_user" crée simultanément un référentiel appelé "repo" et renomme le nom d'utilisateur "attacker_user" en "victim_user"
  • la dernière étape est réalisée à l'aide d'une requête API pour la création du dépôt et d'une interception de requête renommée pour le changement de nom d'utilisateur. Ce développement intervient près de neuf mois après que GitHub a corrigé une faille de contournement similaire qui pouvait ouvrir la porte à des attaques de repojacking.

"La découverte de cette nouvelle vulnérabilité dans les opérations de création de référentiel et de changement de nom d'utilisateur de GitHub souligne les risques persistants associés au mécanisme de retrait de l'espace de noms du référentiel populaire", a déclaré M. Rapoport.


Source: The Hacker News