Researchers at Positive Technologies have detailed a months-long campaign in which an attacker uploaded trojanized packages to the npm registry from five accounts: alex05255, mdrafiqulislamrabby, b.w1001, abdev8773 and mollspotwood54400.
The malicious packages are: svg-fetcher, tradepilot, polytrade, polymarket-kit, react-svg-chunk, gamified-trading-system, font-huge, font-hub, mdb-vite, router-processor and route-processor.
The first-stage code is lightly obfuscated and contains verbose explanatory comments that reveal its logic. It assembles the command-and-control address from multiple string constants and requests the next stage from http://svganchordev.net/icons/<token>, sending the value logo in the bearrtoken header.
Known stage versions are 106, 107, 108 and 116. The second stage is delivered as a single heavily obfuscated JavaScript line that, once formatted, collects the current username, computer name and operating-system details before opening a WebSocket connection to receive further commands.
Stages 106 and 116 contain an additional surprise: hardcoded public and private keys for a private GitLab instance hosted in the attacker’s own infrastructure. Although the keys cannot be used against external systems, their presence indicates that the actor maintains a CI/CD pipeline to automate obfuscation and publication of new stages.
Positive Technologies has reported all malicious packages to npm administrators and recommends that development teams integrate automated feeds from PT Fusion to detect supply-chain threats before they reach production environments.
