5 points par GN⁺ 2025-09-17 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Une attaque de la chaîne d’approvisionnement a touché plus de 40 packages de l’écosystème NPM, dont le populaire @ctrl/tinycolor, avec injection d’un malware auto-propagateur capable d’infecter en cascade les secrets des environnements de développement jusqu’aux identifiants CI/CD. Les versions compromises ont été retirées de npm
  • La charge utile exécute de manière asynchrone un bundle Webpack (bundle.js, ~3.6MB) pendant l’installation npm, puis procède à une collecte étendue d’identifiants via les variables d’environnement, le système de fichiers et les SDK cloud
  • La logique malveillante utilise NpmModule.updatePackage pour patcher et republier de force d’autres packages, provoquant une propagation en cascade, et injecte un workflow shai-hulud dans GitHub Actions pour exfiltrer les secrets d’organisation via toJSON(secrets)
  • Les données collectées sont exfiltrées via la création du dépôt GitHub public Shai-Hulud, en se faisant passer pour une activité de développement légitime, ce qui augmente fortement la furtivité
  • L’opération agit discrètement en visant les tokens et les points de terminaison de métadonnées de AWS/GCP/Azure/NPM/GitHub, ainsi qu’en recherchant des secrets sur la base de TruffleHog
  • Il est demandé de retirer immédiatement les packages, nettoyer les dépôts, remplacer l’ensemble des identifiants, ainsi que de vérifier les journaux CloudTrail/GCP Audit, bloquer les webhooks et mettre en place des politiques de protection de branche / Secret Scanning / cooldown

Packages affectés

  • 195 packages/versions au total ont été signalés, notamment @ctrl/tinycolor(4.1.1, 4.1.2), de nombreux packages de l’espace de noms @ctrl/, la famille de modules @crowdstrike/, ainsi que ngx-bootstrap/ngx-toastr/ng2-file-upload/ngx-color à travers l’écosystème Angular/Web UI, la pile mobile @nativescript-community/ et @nstudio/, la toolchain sciences de la vie teselagen/, ainsi que ember-*, koa2-swagger-ui, pm2-gelf-json, wdio-web-reporter
  • Pour chaque package, il faut se référer au tableau de l’article source pour les versions exactes et croiser précisément leur présence dans vos projets
    • Exemples : @ctrl/ngx-emoji-mart 9.2.1, 9.2.2, @ctrl/qbittorrent 9.7.1, 9.7.2, ngx-bootstrap 18.1.4, 19.0.3–20.0.5, ng2-file-upload 7.0.2–9.0.1

Actions immédiates requises

Identifier et supprimer les packages compromis

  • Vérifier la présence de packages infectés dans le projet : npm ls @ctrl/tinycolor
  • Désinstaller immédiatement les packages compromis : npm uninstall @ctrl/tinycolor
  • Rechercher localement les traces connues via le hash de bundle.js : sha256sum | grep 46faab8a...

Nettoyer les dépôts infectés

  • Supprimer le workflow GitHub Actions malveillant : retirer .github/workflows/shai-hulud-workflow.yml
  • Détecter et supprimer la branche distante shai-hulud : git ls-remote ... | grep shai-hulud puis git push origin --delete shai-hulud

Faire tourner immédiatement tous les identifiants

  • Remplacement complet requis pour les tokens NPM, GitHub PAT / secrets GitHub Actions, clés SSH, identifiants AWS/GCP/Azure, chaînes de connexion DB, tokens tiers et secrets CI/CD
  • Rotation complète nécessaire, y compris pour les éléments stockés dans AWS Secrets Manager / GCP Secret Manager

Auditer l’infrastructure cloud pour détecter une compromission

  • AWS : dans CloudTrail, vérifier les horaires et motifs d’appels à BatchGetSecretValue, ListSecrets, GetSecretValue, et contrôler via le IAM Credential Report la création ou l’usage anormal de clés
  • GCP : dans les Audit Logs, vérifier les accès à Secret Manager et la présence éventuelle d’événements CreateServiceAccountKey

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.