Aller au contenu
Sécurité medium

CanisterWorm (ver npm)

3 min de lecture
Point de compromission dans la chaîne Rupture · étape Registres
Source
amont
Dépendances
deps
Build & CI
ci
Packaging
artefact
Release
provenance
Registres
Registres
Déploiement
admission
Runtime
exécution
Rayon d'explosion — compromission à l'étape Registres, propagation possible aux consommateurs. Domaines : Orchestration, Release, Secrets
Gravité critique
CanisterWorm : ver npm auto-propageant diffusant des portes dérobées dans l'écosystème.
16+
paquets @opengov
persistance sans root
ICP
C2 sur blockchain
v0.69.4
origine (Trivy)

En bref

Date
26/03/2026
Gravité
Critique
Étape de la chaîne
Registres
Domaines SOCLE
Orchestration+ Release, Secrets

Que s'est-il passé ?

Contexte

Dans la foulée de la seconde compromission de Trivy (v0.69.4), l'acteur TeamPCP déploie CanisterWorm, un ver npm auto-propageant : les jetons npm volés aux pipelines servent à publier des patchs piégés sur tous les namespaces atteignables, dont @opengov (16+ paquets).

Mécanisme

Chaque version piégée installe, via un postinstall, une porte dérobée Python persistante (service utilisateur systemd, sans root) qui interroge un C2 hébergé sur la blockchain Internet Computer (résistant au takedown). Un composant ver revole les jetons npm et republie le malware.

Impact

Une charge de second étage via le C2 embarque des capacités destructrices Kubernetes et un effacement de système de fichiers pour des victimes ciblées géopolitiquement. Le payload base64 dans index.js échappe aux scanners statiques.

Parades

Désactiver les scripts d'installation, jetons de publication courts (OIDC) et scopés, filtrage de l'egress pour couper le C2, détection d'un postinstall apparu pour la première fois, et révocation des jetons compromis.

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

Ce qu'il faut retenir

Identités de publication courtes (OIDC) ; détection de republication ; confinement du rayon d'explosion (egress filtre).

Les exigences SOCLE qui auraient limité cet incident

Cet incident se rattache à 5 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 :

Pour aller plus loin

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn