En rutinemessig patch-bump under @emilgroup-navnerommet var det første Socket.dev-forskerne la merke til i mars. Pakkene var legitime og har eksistert i årevis, men nye patch-versjoner hadde plutselig fått stripped funksjonalitet, generisk metadata og byte-identiske malware-komponenter på tvers. Angriperne hadde ikke laget en typosquat: de hadde overtatt publisher-kontoer.
Mekanismen er klassisk supply chain, men med en vri som gjør den skumlere. Skriptet deploy.js aksepterer npm-tokens fra miljøvariabler, bruker npms /-/whoami-endpoint til å finne alle pakker tokenet kan publisere, bumper patch-versjonen på hver, og republiserer den ondsinnede payloaden under det legitime pakkenavnet. Med --tag latest havner den kompromitterte versjonen rett i npm install.
«The worm component ran in parallel with that host-level implant. deploy.js was not triggered by npm install; it was the threat actor's republishing tool.» (Socket Threat Research Team)
På Linux-vertsmaskiner installeres en Python-backdoor som systemd user-service kalt pgmon, som hver 3000. sekund polle en Internet Computer Protocol-kanister (tdtqy-oyaaa-aaaae-af2dq-cai.raw.icp0.io) for nye payloads. ICP-kanisteren fungerer som dead-drop C2. Angriperne kan rotere stage 2-payloads uten å endre den persisterte implanten.
Wiz tilskriver kampanjen trusselaktøren «TeamPCP», kjent fra tidligere angrep på Aqua Security's Trivy. Socket kaller den CanisterWorm og har lenger lister i sin [campaign-side](https://socket.dev/supply-chain-attacks/canisterworm).
Hva bør du gjøre?
- Audit dine npm-tokens: kjør
npm token listog slett tokens du ikke bruker aktivt. Roterbare tokens som ligger i.npmrceller CI-envs er angrepsvektoren. - Lås dependencies til eksakte versjoner: bruk
npm ciog lockfile i CI-pipelines. Unngå^og~i package.json på kritiske dependencies. - Sjekk for
pgmon-service på Linux-maskiner:systemctl --user status pgmon. Hvis tjenesten finnes, har du blitt rammet. Fjern~/.local/share/pgmon/og~/.config/systemd/user/pgmon.service. - Slå av postinstall-scripts i CI:
npm ci --ignore-scriptshvis du ikke absolutt trenger dem. CanisterWorm utnytterpostinstall-hooken.
Bakgrunn
CanisterWorm bygger på et mønster fra Axios- og Trivy-kompromitteringene tidligere i 2026, der legitime maintainer-kontoer ble sosialt manipulert eller tokens lekket gjennom CI. Forskjellen her er worm-komponenten: én kompromittert token propagerer seg automatisk til alle pakker tokenet har publiseringsrettigheter til. Det betyr at én enkelt kompromittert utvikler-laptop kan forurense hele pakkelandskapet som personen vedlikeholder.