Ultralytics : un pipeline GitHub Actions compromis pour miner de la cryptomonnaie
2024-12-04 · Éditeur : Ultralytics · Domaine : Cloud & DevOps
Du 4 au 7 décembre 2024, quatre versions du paquet Python ultralytics sont publiées sur PyPI avec un mineur de cryptomonnaie. L'attaquant a exploité une faille d'un workflow GitHub Actions, puis un jeton PyPI oublié.
Ce qui change
- Quatre versions piégées d'ultralytics publiées sur PyPI du 4 au 7 décembre 2024.
- Entrée par une injection dans un workflow GitHub Actions déclenché par pull_request_target.
- Un jeton PyPI resté actif a servi pour les deux dernières versions.
- Charge utile : un mineur XMRig injecté via le cache de build.
### Ce qui change Le 4 décembre 2024, la version 8.3.41 du paquet Python ultralytics (bibliothèque de vision par ordinateur) est publiée sur PyPI. Elle embarque un mineur de cryptomonnaie XMRig. Trois autres versions suivent : 8.3.42 le 5 décembre, puis 8.3.45 et 8.3.46 le 7 décembre. PyPI les retire et publie une analyse le 11 décembre. ### Caractéristiques - Vecteur initial : un workflow déclenché par pull_request_target qui injectait sans protection le nom de branche dans une commande shell, permettant d'exécuter du code (injection de modèle). - Le code malveillant a été placé dans le cache de la phase de build, puis intégré aux paquets publiés par le workflow légitime (versions 8.3.41 et 8.3.42). - Les versions 8.3.45 et 8.3.46 ont été publiées avec un jeton d'API PyPI resté actif, probablement antérieur à l'adoption de la publication de confiance. - Les journaux de transparence Sigstore et les attestations de provenance ont permis de retracer l'attaque. - Selon l'auteur de l'outil d'audit zizmor, l'outil aurait signalé le déclencheur dangereux et l'injection. ### Pourquoi c'est important C'est un cas direct d'attaque sur le pipeline, et non sur le code source : un contributeur externe obtient l'exécution de code dans l'intégration continue d'un projet très utilisé. Il illustre trois règles de base pour les équipes DevOps : se méfier de pull_request_target, ne jamais interpoler des entrées contrôlables dans des commandes, et révoquer les anciens jetons une fois la publication de confiance en place. Le projet utilisait déjà la publication de confiance, ce qui a facilité l'enquête. ### À retenir Un scénario d'école de la sécurité des workflows GitHub Actions, qui annonce les attaques de 2025 et 2026.
Liens
Tags : Sécurité, CI/CD, DevOps, Open Source