CanisterWorm Spreads Across 47 npm Packages After Trivy Supply-Chain Attack

· Original article ↗

Summary

Researchers report that CanisterWorm infected 47 npm packages. Its backdoor retrieves payload URLs from an ICP canister, while a newer variant harvests npm tokens during postinstall to spread. TeamPCP is suspected.

Key points

  • The report identifies 47 affected npm packages following the Trivy supply-chain compromise; TeamPCP is suspected, not confirmed.
  • A postinstall hook runs a loader that installs a Python backdoor, which polls an Internet Computer canister for a next-stage payload URL.
  • A systemd user service masquerading as “pgmon” restarts the backdoor if it stops.
  • An attacker-run deploy.js script used stolen npm tokens to publish malicious package releases; a newer variant harvests tokens during postinstall and launches propagation automatically.
  • The canister can change the payload URL remotely. A youtube[.]com link acts as a dormant state, and changing the URL can arm or disarm implants.
  • The newer variant was found in @teale.io/eslint-config versions 1.8.11 and 1.8.12; the article says the backdoor payload had been replaced with a test string at the time of reporting.

Article Details

Attack Vectors
  • Malicious npm package releases use a postinstall hook to execute a loader that installs a Python backdoor.
  • The backdoor polls an Internet Computer canister for a URL to a next-stage executable, then fetches and runs that payload.
  • A systemd user service named to resemble PostgreSQL tooling (“pgmon”) restarts the backdoor after termination.
  • A newer package variant searches the developer environment for npm authentication tokens during postinstall and launches deploy.js with those tokens to publish infected packages.

MITRE ATT&CK

People

Threat Actors

Malware

Products

Tools

Related Articles