Selon HelixGuard Team (24/11/2025), une campagne coordonnée a empoisonné en quelques heures plus de 300 composants NPM via de faux ajouts liés au runtime Bun, entraînant le vol de secrets et une propagation de type ver affectant plus de 27 000 dépôts GitHub.

  • L’attaque repose sur l’injection d’un script NPM preinstall pointant vers setup_bun.js, qui exécute un fichier hautement obfusqué bun_environment.js (>10 Mo). Ce dernier collecte des secrets (tokens NPM, identifiants AWS/GCP/Azure, GitHub, variables d’environnement) et lance TruffleHog pour étendre la collecte.

  • L’exfiltration s’effectue via GitHub Actions : création d’un runner baptisé SHA1HULUD et d’un dépôt GitHub avec la description « Sha1-Hulud: The Second Coming. ». Un workflow malveillant .github/workflows/formatter_123456789.yml empaquette les secrets en actionsSecrets.json (double encodage Base64). L’article indique que le mode opératoire évoque l’attaque « Shai-Hulud » observée en septembre 2025.

  • Le malware modifie le package.json, injecte setup_bun.js et bun_environment.js, reconditionne le composant, puis exécute npm publish avec des tokens volés, réalisant une propagation de type ver. Le code inclut une logique multi‑plateforme et télécharge des binaires d’actions-runner (ex. actions-runner-*-2.330.0).

  • HelixGuard note que le dépôt GitHub source d’exemples comme @asyncapi/specs n’était pas affecté, tandis que les versions publiées sur NPM l’étaient. De très nombreux paquets sont listés, parmi lesquels des projets à forte diffusion comme @zapier/zapier-sdk, @posthog/core, posthog-node, @asyncapi/specs, @postman/* et d’autres.

  • Secrets ciblés (exemples décodés) : github_token, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, SLACK_WEBHOOK_URL, CODECOV_TOKEN, FIREBASE_TOKEN, EXPO_TOKEN, WEBFLOW_TOKEN.

IOC et artefacts clés:

  • Scripts/fichiers: setup_bun.js, bun_environment.js (>10 Mo), actionsSecrets.json
  • GitHub: runner SHA1HULUD, description de repo « Sha1-Hulud: The Second Coming. », workflow .github/workflows/formatter_123456789.yml
  • Outil: TruffleHog pour le scanning de secrets
  • Technique: injection "preinstall": "node setup_bun.js" dans package.json, repack + npm publish avec tokens volés
  • Indices OS et binaire: téléchargements d’actions-runner 2.330.0 pour Linux/Windows/macOS, répertoires comme $HOME/.dev-env/

Paquets affectés (extraits):

  • @zapier/zapier-sdk (0.15.5, 0.15.7)
  • @posthog/core (1.5.6), posthog-node (5.11.3, 5.13.3, 4.18.1)
  • @asyncapi/specs (6.8.2, 6.8.3, 6.9.1, 6.10.1), @asyncapi/parser, @asyncapi/generator, @asyncapi/react-component
  • @postman/* (ex. tunnel-agent, csv-parse, node-keytar, secret-scanner-wasm)

Type d’article: analyse de menace visant à documenter la campagne, ses TTPs et l’inventaire des paquets touchés.

🧠 TTPs et IOCs détectés

TTP

Injection de script NPM preinstall, exécution de scripts obfusqués, collecte et exfiltration de secrets via GitHub Actions, propagation de type ver, utilisation de TruffleHog pour le scanning de secrets, modification et reconditionnement de package.json, publication avec des tokens volés, logique multi-plateforme, téléchargement de binaires d’actions-runner.

IOC

Scripts/fichiers: setup_bun.js, bun_environment.js (>10 Mo), actionsSecrets.json; GitHub: runner SHA1HULUD, description de repo « Sha1-Hulud: The Second Coming. », workflow .github/workflows/formatter_123456789.yml; Outil: TruffleHog; Indices OS et binaire: téléchargements d’actions-runner 2.330.0 pour Linux/Windows/macOS, répertoires comme $HOME/.dev-env/.


🔗 Source originale : https://helixguard.ai/blog/malicious-sha1hulud-2025-11-24