Le bogue de repojacking de GitHub aurait pu permettre aux attaquants de prendre le contrôle des référentiels d’autres utilisateurs


Le service d’hébergement de référentiels basé sur le cloud GitHub a corrigé une faille de sécurité très grave qui aurait pu être exploitée pour créer des référentiels malveillants et monter des attaques sur la chaîne d’approvisionnement.

La Repojacking technique, divulgué par Checkmarx, implique un contournement d’un mécanisme de protection appelé retrait populaire de l’espace de noms du référentielqui vise à empêcher les développeurs d’extraire des référentiels dangereux portant le même nom.

Le problème a été résolu par la filiale appartenant à Microsoft le 19 septembre 2022 à la suite d’une divulgation responsable.

Le repojacking se produit lorsqu’un créateur d’un référentiel choisit de modifier le nom d’utilisateur, ce qui permet potentiellement à un acteur malveillant de revendiquer l’ancien nom d’utilisateur et de publier un référentiel malveillant portant le même nom dans le but d’inciter les utilisateurs à les télécharger.

Bug de repojacking GitHub

Alors que la contre-mesure de Microsoft « retire[s] l’espace de noms de tout projet open source qui avait plus de 100 clones dans la semaine précédant le changement de nom ou la suppression du compte du propriétaire », Checkmarx a découvert que cela pouvait être contourné par le « transfert de référentiel » caractéristique.

La façon dont cela fonctionne est la suivante –

  • Un acteur malveillant crée un référentiel portant le même nom que le référentiel retiré (par exemple, « dépôt ») appartenant à un utilisateur nommé « victime » mais sous un nom d’utilisateur différent (par exemple, « helper »)
  • « helper » transfère la propriété de « repo » à un deuxième compte avec le nom d’utilisateur « attaquant »
  • « attaquant » renomme le nom d’utilisateur du compte en « victime »
  • L’espace de noms « victim/repo » est maintenant sous le contrôle de l’adversaire
La cyber-sécurité

En d’autres termes, l’attaque repose sur la bizarrerie que GitHub considère uniquement comme retirée de l’espace de noms, c’est-à-dire la combinaison du nom d’utilisateur et du nom du référentiel, permettant à un acteur malveillant de réutiliser le nom du référentiel en conjonction avec un nom d’utilisateur arbitraire.

Bug de repojacking GitHub

Une réussite exploitation aurait pu effectivement permettre aux attaquants de pousser des référentiels empoisonnés, exposant les noms d’utilisateur renommés au risque d’être victimes d’attaques de la chaîne d’approvisionnement.

« S’ils n’étaient pas explicitement pris en charge, tous les noms d’utilisateur renommés sur GitHub étaient vulnérables à cette faille, y compris plus de 10 000 packages sur les gestionnaires de packages Go, Swift et Packagist », a déclaré Aviad Gershon, chercheur chez Checkmarx.



ttn-fr-57