En bref
Que s'est-il passé ?
@bitwarden/cli@2026.4.0, l'outil officiel du gestionnaire de mots de passe Bitwarden, est compromis et republié sur npm. Première attaque confirmée où le Trusted Publishing OIDC de npm a servi à publier un paquet piégé.
Le compte GitHub d'un ingénieur Bitwarden est compromis. L'attaquant crée une branche dans bitwarden/clients, y dépose un tarball malveillant, et réécrit le workflow publish-cli.yml pour échanger un jeton OIDC contre un jeton npm, puis publie. npm ne gère pas les restrictions par branche.
Un hook preinstall télécharge le runtime Bun et lance un voleur de credentials obfusqué de 9,7 Mo : clés SSH, jetons npm et GitHub, secrets AWS et GCP, et configs d'outils IA (Claude Code, Cursor, ~/.claude.json). Exfiltration chiffrée AES-256-GCM vers audit.checkmarx.cx, un typosquat de Checkmarx.
Imposer un gate d'environnement avec approbation sur les workflows de publication, une MFA résistante au phishing, des permissions minimales des pipelines, et la détection de republication.
Comment l'attaquant a procédé
Cet incident met en jeu les vecteurs d'attaque suivants du catalogue SOCLE ; chacun renvoie à sa fiche, où l'on trouve les exigences qui le neutralisent :
La leçon à en tirer
2FA et trusted publishing ; détection de versions malveillantes ; secrets scopés et rotation.
Les exigences SOCLE qui auraient limité cet incident
Cet incident se rattache à 20 exigences du référentiel, par domaine. Les satisfaire n'aurait pas forcément tout empêché, mais aurait réduit la probabilité de l'attaque, limité son impact ou accéléré sa détection :