Aikido

Shai-Hulud est-il de retour ? Une version compromise de l'interface CLI de Bitwarden contient un ver npm à propagation automatique

Écrit par
Ilyas Makari

Version 2026.4.0 parmi les plus couramment utilisés @bitwarden/cli Un paquet npm (78 000 téléchargements hebdomadaires) a été identifié comme malveillant. Ce paquet contient un ver sophistiqué de vol d'identifiants en plusieurs étapes qui se nomme explicitement « Shai-Hulud : La troisième venue », une référence directe à campagnes précédentes de Shai-Hulud sur la chaîne d'approvisionnement, et vise les identifiants des développeurs, notamment les clés SSH, cloud et même les fichiers de configuration MCP.

Cette attaque survient peu après la récente intrusion chez Checkmarx, qui concernait notamment un projet Docker Hub et une extension VS Code. On pense que les accès obtenus lors de cette campagne auraient pu être utilisés pour compromettre le pipeline de publication de Bitwarden. Il semble notamment que le pirate ait contourné les contrôles de publication sécurisés de Bitwarden en infectant le pipeline CI/CD lui-même (publish-ci.yml dans github.com/bitwarden/clients), ce qui permet à un paquet malveillant d'être publié sous le nom d'un paquet légitime @bitwarden nom.

Ce qui s'est passé

@bitwarden/cli@2026.4.0 a introduit un programme malveillant preinstall lien pointant vers un nouveau fichier bw_setup.js. Cela se déclenche automatiquement lorsque npm install sans aucune intervention de l'utilisateur.

Étape 1 : bw_setup.js

Un programme de démarrage multiplateforme. Il détecte le système d'exploitation et l'architecture de la victime, puis télécharge le moteur JavaScript Bun légitime directement depuis github.com/oven-sh/bun, et s'en sert pour exécuter la charge utile de la phase 2.

Étape 2 : bw1.js

Une charge utile de 10 Mo fortement obscurcie. Une fois désobscurcie, elle se révèle être un collecteur d'identifiants complet et un ver de chaîne d'approvisionnement. Son comportement ressemble fortement à celui des vagues précédentes de Shai-Hulud, et elle contient même la chaîne « Shai-Hulud : The Third Coming » codée en dur dans la description du dépôt GitHub public qu'elle crée pour exfiltrer les données volées.

Cette version est entièrement inspirée de l'univers de Dune : le dépôt exfil porte un nom tiré d'un vocabulaire aléatoire issu de Dune (fremen-ver-des-sables-441, harkonnen-mélange-7, etc.), et la charge utile contient un manifeste anti-IA intégré qu'elle tente d'écrire dans les fichiers de configuration du shell des victimes.

Ce qu'il vole

Le logiciel malveillant analyse une liste préprogrammée de fichiers contenant des identifiants de grande valeur sur l'ordinateur de la victime :

~/.ssh/id* / ~/.ssh/id_ (clés privées SSH)
~/.ssh/known_hosts (empreintes d'hôtes SSH)
~/.ssh/keys (stockage supplémentaire de clés SSH)
~/.aws/credentials (clés d'accès AWS)
~/.config/gcloud/credentials.db (identifiants GCP)
~/.npmrc / .npmrc (jetons d'authentification npm)
~/.claude.json / .claude.json (jeton d'authentification Claude Code)
~/.claude/mcp.json (configurations du serveur MCP de Claude Code, pouvant contenir des clés API et des identifiants de base de données)
~/.kiro/settings/mcp.json (configurations du serveur MCP Kiro)
.git/config (URL et identifiants Git distants)
.git-credentials (mots de passe Git enregistrés)
.env (variables d'environnement du projet et clés API)
~/.bash_history / ~/.zsh_history

Au-delà des fichiers locaux, le logiciel malveillant exécute également des collecteurs pour AWS SSM Parameter Store, AWS Secrets Manager, Azure Key Vault et GCP Secret Manager en utilisant cloud disponibles. Quiconque exécute ce programme sur une machine de développement cloud ou sur un serveur d'intégration continue (CI) perd l'intégralité de son infrastructure de secrets.

Le logiciel malveillant contacte deux adresses URL C2 :

  • hxxps://audit.checkmarx[.]cx/v1/telemetry — C2 principal, ciblant directement chaque infection. Il ne s'agit pas d'un Checkmarx légitime ; .cx C'est le Island Christmas. Bloquez-le immédiatement.
  • hxxps://api.github[.]com/search/commits?q=beautifulcastle%20 — solution de secours. Si le serveur C2 principal est hors service, le logiciel malveillant recherche dans ces commits GitHub un nom d'hôte de remplacement signé.

La multiplication du Shai-Hulud

Nous avons mis en évidence un mode de propagation similaire à celui de Shai-Hulud. Les données volées sont exfiltrées vers un dépôt GitHub public créé sous le compte de la victime elle-même. Pour les victimes qui ne sont pas membres d’une organisation, leur jeton GitHub est également publié dans un « dead drop » public sur GitHub, où d’autres machines infectées peuvent le trouver et le réutiliser pour mener à bien leur propre exfiltration. Quant aux victimes membres d’une organisation, leur jeton reste confidentiel et n’est conservé que dans les données d’exfiltration chiffrées.

Comment Aikido détecte cela

Si vous êtes un utilisateur Aikido, vérifiez votre flux central et filtrez les problèmes de logiciels malveillants. Cela apparaîtra comme un problème critique 100/100. Aikido effectue des rescans nocturnes, mais nous vous recommandons de déclencher un rescan manuel dès maintenant.

Si vous n'êtes pas encore un utilisateur Aikido, vous pouvez créer un compte et connecter vos dépôts. Notre couverture des logiciels malveillants est incluse dans le plan gratuit, aucune carte de crédit requise.

Pour une couverture plus large de toute votre équipe, l'Endpoint Protection d'Aikido vous offre une visibilité et un contrôle sur les packages logiciels installés sur les appareils de votre équipe. Elle couvre les extensions de navigateur, les bibliothèques de code, les plugins d'IDE et les dépendances de build, le tout en un seul endroit. Arrêtez les logiciels malveillants avant qu'ils ne soient installés.

Pour vous protéger à l'avenir, pensez à Aikido Chain (open source). Safe Chain s'intègre à votre flux de travail actuel : il intercepte les commandes npm, npx, yarn, pnpm et pnpx et vérifie la conformité des paquets par rapport Aikido avant leur installation.

IOCs

  • Package : @bitwarden/cli (version 2026.4.0)
  • Fichier de préinstallation : bw_setup.js
    • SHA256: 37f34aa3b86db6898065f3ca886031978580a15251f2576f6d24c3b778907336
  • Fichier de charge utile : bw1.js
    • SHA256: 18f784b3bc9a0bcdcb1a8d7f51bc5f54323fc40cbd874119354ab609bef6e4cb
  • Description du dépôt GitHub : Shai-Hulud : La troisième venue
  • Point d'extrémité d'exfiltration : audit.checkmarx[.]cx:443/v1/telemetry
  • Messages de commit publics commençant par Vive la résistance contre les machines
Partager :

https://www.aikido.dev/blog/shai-hulud-npm-bitwarden-cli-compromise

Démarrez gratuitement dès aujourd'hui.

Commencer gratuitement
Sans carte bancaire

Abonnez-vous pour les actualités sur les menaces.

4,7/5
Fatigué des faux positifs ?
Essayez Aikido, comme 100 000 autres.
Commencez maintenant
Obtenez une démonstration personnalisée

Approuvé par plus de 100 000 équipes

Réserver maintenant
Analysez votre application à la recherche d'IDORs et de chemins d'attaque réels

Approuvé par plus de 100 000 équipes

Démarrer l'analyse
Découvrez comment le pentest IA teste votre application

Approuvé par plus de 100 000 équipes

Démarrer les tests

Sécurisez votre environnement dès maintenant.

Sécurisez votre code, votre cloud et votre environnement d’exécution dans un système centralisé unique.
Détectez et corrigez les vulnérabilités rapidement et automatiquement.

Aucune carte de crédit requise | Résultats en 32 secondes.