Les responsables de Python Package Index (PyPI) ont publié la semaine dernière des correctifs pour trois vulnérabilités, dont l’une pourrait être exploitée pour obtenir l’exécution de code arbitraire et prendre le contrôle total du référentiel de logiciels tiers officiel.
Les failles de sécurité ont été découvert et rapporté par le chercheur en sécurité japonais RyotaK, qui dans le passé a divulgué des vulnérabilités critiques dans le référentiel Homebrew Cask et la bibliothèque CDNJS de Cloudflare. Il a reçu un total de 3 000 $ dans le cadre du programme de bug bounty.
La liste des trois vulnérabilités est la suivante –
- Vulnérabilité dans la suppression de documents hérités sur PyPI – Une vulnérabilité exploitable dans les mécanismes de suppression de la documentation héritée hébergeant des outils de déploiement sur PyPI, qui permettrait à un attaquant de supprimer la documentation de projets hors de son contrôle.
- Vulnérabilité dans la suppression de rôle sur PyPI – Une vulnérabilité exploitable dans les mécanismes de suppression de rôles sur PyPI a été découverte par un chercheur en sécurité, ce qui permettrait à un attaquant de supprimer des rôles pour des projets hors de son contrôle.
- Vulnérabilité dans le workflow GitHub Actions pour PyPI – Une vulnérabilité exploitable dans un workflow GitHub Actions pour le référentiel source de PyPI pourrait permettre à un attaquant d’obtenir des autorisations d’écriture sur le référentiel pypa/warehouse.
L’exploitation réussie des failles pourrait entraîner la suppression arbitraire des fichiers de documentation du projet, ce qui concerne la façon dont le point de terminaison de l’API pour la suppression de la documentation héritée gère les noms de projet transmis en entrée et permet à tout utilisateur de supprimer n’importe quel rôle en raison d’un ID de rôle valide. à une vérification manquante qui nécessite que le projet en cours corresponde au projet auquel le rôle est associé.
Une faille plus critique concerne un problème dans le flux de travail GitHub Actions pour le référentiel source de PyPI nommé « combine-prs.yml », entraînant un scénario dans lequel un adversaire pourrait obtenir une autorisation d’écriture pour la branche principale du référentiel « pypa/warehouse », et dans le processus, exécutez un code malveillant sur pypi.org.
« Les vulnérabilités décrites dans cet article ont eu un impact significatif sur l’écosystème Python », a noté RyotaK. « Comme je l’ai déjà mentionné à plusieurs reprises, certaines chaînes d’approvisionnement présentent des vulnérabilités critiques. Cependant, un nombre limité de personnes étudient les attaques de la chaîne d’approvisionnement et la plupart des chaînes d’approvisionnement ne sont pas correctement protégées. Par conséquent, je pense que c’est nécessaire pour les utilisateurs qui dépendent sur la chaîne d’approvisionnement pour contribuer activement à l’amélioration de la sécurité de la chaîne d’approvisionnement. »