DevOps

CHAINDROP : anatomie du ver npm qui a piégé keyv, et le plan de durcissement de votre chaîne CI/CD

Le 4 août 2026, une nouvelle vague Shai-Hulud a compromis le mainteneur de keyv et propagé un ver auto-réplicant, CHAINDROP, à plus de 400 paquets npm. Cet article décompose la mécanique de l'attaque, fournit un runbook de détection et de réponse ordonné, puis détaille le durcissement structurel de la publication et des pipelines : trusted publishing OIDC, attestations Sigstore, contrôle des flux sortants et politique de quarantaine des dépendances.

| | | 10 min read · by
Schéma d'une chaîne de dépendances npm dont plusieurs nœuds sont marqués comme compromis, relié à un pipeline CI/CD

Une compromission de registre n’est plus un incident de sécurité applicative : c’est un incident d’infrastructure. La campagne CHAINDROP l’a démontré en moins de six heures, en transformant une seule session npm volée en propagation automatisée à travers l’un des sous-graphes les plus denses de l’écosystème Node.js.

Cet article n’est pas un commentaire d’actualité. C’est un runbook. Il suppose que vous exploitez des pipelines CI/CD en production, que vous publiez au moins un paquet npm, et que vous devez répondre à la question « sommes-nous touchés ? » avant la fin de la journée.

Ce qui s’est réellement passé

La chronologie publique tient en trois jours.

Le 4 août 2026, Elastic Security Labs identifie une nouvelle itération de la famille Shai-Hulud, ciblant cette fois le compte d’un mainteneur de keyv. Le monorepo est trojanisé : du code malveillant est introduit dans les artefacts publiés, pas seulement dans le dépôt source. Dans les heures qui suivent, les identifiants npm récoltés sur la machine et dans la CI du mainteneur servent à rétro-porter la charge utile vers les paquets qu’il co-détient — flat-cache, cacheable-request, cache-manager et leurs satellites. Plus de 400 paquets sont affectés, représentant cumulativement plus de 1,3 milliard de téléchargements mensuels.

Le terme « rétro-porter » est important : il ne s’agissait pas uniquement de publier une version majeure suspecte, mais de republier des versions correctives sur des branches de maintenance encore largement consommées. Un lockfile figé sur une plage ^ n’offre aucune protection dans ce scénario ; un npm…

Unlock the full article

Get full access to in-depth technical content written from real-world experience, not tutorials copied from documentation.