Une fenêtre de vulnérabilité de près de deux heures a exposé les utilisateurs de GitHub à une potentielle prise de contrôle après une interface de ligne de commande malveillante présentée comme un outil Bitwarden légitime.

Le 22 avril, une version malveillante de l'interface de ligne de commande de Bitwarden est apparue sur npm sous le nom officiel du package @bitwarden/cli@2026.4.0. Pendant 93 minutes, toute personne ayant extrait la CLI via npm a reçu un substitut détourné à l'outil légitime.
Bitwarden a détecté la compromission, supprimé le package et publié une déclaration indiquant qu'il n'avait trouvé aucune preuve que des attaquants avaient accédé aux données du coffre-fort de l'utilisateur final ou compromis les systèmes de production.
La société de recherche en sécurité JFrog a analysé la charge utile malveillante et a découvert qu'elle n'avait aucun intérêt particulier pour les coffres Bitwarden. Il ciblait les jetons GitHub, les jetons npm, les clés SSH, l'historique du shell, les informations d'identification AWS, les informations d'identification GCP, les informations d'identification Azure, les secrets GitHub Actions et les fichiers de configuration des outils d'IA.
Il s'agit d'informations d'identification qui régissent la manière dont les équipes construisent, déploient et accèdent à leur infrastructure.
Secret ciblé/type de données
Où il vit habituellement
Pourquoi c'est important sur le plan opérationnel
Jetons GitHub
Ordinateurs portables de développeur, configuration locale, environnements CI
Peut permettre l'accès aux dépôts, les abus de flux de travail, la liste secrète et les mouvements latéraux grâce à l'automatisation
jetons npm
Configuration locale, environnements de publication
Peut être utilisé pour publier des packages malveillants ou modifier les flux de publication
Clés SSH
Machines de développement, construction d'hôtes
Peut ouvrir l'accès aux serveurs, aux dépôts internes et à l'infrastructure
Histoire de Shell
Machines locales
Peut révéler des secrets collés, des commandes, des noms d'hôte internes et des détails de flux de travail
Informations d'identification AWS
Fichiers de configuration locaux, variables d'environnement, secrets CI
Peut exposer les charges de travail, le stockage et les systèmes de déploiement du cloud
Identifiants GCP
Fichiers de configuration locaux, variables d'environnement, secrets CI
Peut exposer des projets, des services et des pipelines d'automatisation cloud
Informations d'identification Azure
Fichiers de configuration locaux, variables d'environnement, secrets CI
Peut exposer l'infrastructure cloud, les systèmes d'identité et les chemins de déploiement
Secrets des actions GitHub
Environnements CI/CD
Peut donner accès à l'automatisation, aux résultats de génération, aux déploiements et aux secrets en aval
Outils d'IA/fichiers de configuration
Répertoires de projets, environnements de développement locaux
Peut exposer les clés API, les points de terminaison internes, les paramètres du modèle et les informations d'identification associées
Bitwarden sert plus de 50 000 entreprises et 10 millions d'utilisateurs, et sa propre documentation décrit la CLI comme un moyen « puissant et complet » d'accéder et de gérer le coffre-fort, y compris dans les flux de travail automatisés qui s'authentifient à l'aide de variables d'environnement.
Bitwarden répertorie npm comme la méthode d'installation la plus simple et préférée pour les utilisateurs déjà à l'aise avec le registre. Cette combinaison d’utilisation de l’automatisation, d’installation sur la machine du développeur et de distribution officielle de NPM place la CLI exactement là où les secrets d’infrastructure de grande valeur ont tendance à résider.
L'analyse de JFrog montre que le package malveillant a recâblé à la fois le hook de préinstallation et le point d'entrée binaire bw vers un chargeur qui a récupéré le runtime Bun et a lancé une charge utile obscurcie. Le compromis est déclenché au moment de l'installation et au moment de l'exécution.
Une organisation pourrait exécuter la CLI dérobée sans toucher aux mots de passe stockés pendant que le logiciel malveillant collectait systématiquement les informations d'identification régissant ses pipelines CI, ses comptes cloud et l'automatisation du déploiement.
La société de sécurité Socket affirme que l'attaque semble avoir exploité une action GitHub compromise dans le pipeline CI/CD de Bitwarden, ce qui est cohérent avec un modèle suivi par les chercheurs de Checkmarx.
Bitwarden a confirmé que l'incident est lié à la campagne plus large de la chaîne d'approvisionnement Checkmarx.
Le goulot d’étranglement de la confiance
Npm a construit son modèle de publication fiable pour répondre exactement à cette classe de risques.
En remplaçant les jetons de publication npm de longue durée par une authentification CI/CD basée sur OIDC, le système supprime l'un des chemins les plus couramment utilisés par les attaquants pour détourner les versions de registre, et npm recommande la publication fiable et la considère comme une avancée significative.
La surface la plus difficile est la logique de publication elle-même, comme les flux de travail et les actions qui appellent l'étape de publication. La propre documentation de Npm recommande des contrôles au-delà de l'OIDC, tels que des environnements de déploiement avec des exigences d'approbation manuelle, des règles de protection des balises et des restrictions de branche.
Couche dans la chaîne de confiance
Ce qu'il est censé garantir
Qu'est-ce qui peut encore mal se passer
Dépôt source
La base de code prévue existe dans le dépôt attendu
Les attaquants n’auront peut-être jamais besoin de modifier directement la base de code principale
Flux de travail CI/CD
Automatise la construction et la publication à partir du dépôt
S'il est compromis, il peut produire et publier un artefact malveillant
Actions GitHub/logique de publication
Exécute les étapes de création et de publication du logiciel
Une action empoisonnée ou un flux de travail abusif peut rendre malveillant un chemin de publication légitime.
Publication approuvée par l'OIDC
Remplace les jetons de registre de longue durée par une authentification basée sur l'identité de courte durée
Cela prouve qu'un workflow autorisé a publié le package, et non que le workflow lui-même était sûr
itinéraire officiel du package npm
Distribue le logiciel sous le nom de package attendu
Les utilisateurs peuvent toujours recevoir des logiciels malveillants si le chemin de publication officiel est compromis
Machine de développement/coureur CI
Consomme le package officiel
Les logiciels malveillants au moment de l'installation ou de l'exécution peuvent récolter du lo