The Wave-by-Wave Timeline
Wave 1 (October 2025) — Seven OpenVSX extensions were compromised, racking up nearly 36,000 downloads combined, with several still actively distributing malware two days after discovery. OpenVSX rotated compromised tokens and declared the incident contained.
Wave 2 (November 2025) — The threat resurfaced using the same invisible-Unicode technique, and researchers found it had expanded to specifically target GitHub, using stolen credentials to push malicious commits directly into repositories.
Wave 3 (early December 2025) — 24 new malicious packages appeared across OpenVSX and the Microsoft marketplace, with package names deliberately mimicking popular frameworks like Flutter, Vim, Tailwind, Svelte, React Native, and Vue to trick developers into installing impersonator extensions. This is the wave the original reporting treated as the endpoint — but it wasn't.
Wave 4 (late December 2025 – January 2026) — The campaign pivoted to macOS for the first time, using a Solana blockchain address as its command-and-control channel, and attempted to replace legitimate hardware wallet apps with trojanized versions. This was the fourth distinct wave in just over two months, the first aimed exclusively at Mac developers.
Wave 5 (March 2026) — The malware evolved further, gaining the ability to deploy a remote access trojan, log keystrokes, capture screenshots, and take commands from a C2 server hidden inside a Solana blockchain memo, while also beginning to target MCP servers. A parallel campaign wave abused 72 Open VSX extensions, and separately, 88 malicious npm packages were uploaded across three additional waves between November 2025 and February 2026, stealing environment variables and CI/CD tokens. A later April 2026 wave added 73 "sleeper" extensions that looked harmless at install time and only turned malicious after a later update — a deliberate shift meant to evade the kind of static, at-install scanning that had caught earlier waves.
The Takedown (May 26, 2026) — CrowdStrike, working with Google and the Shadowserver Foundation, disrupted all command-and-control channels tied to GlassWorm, targeting a campaign that had systematically pursued developers since early 2025 specifically for their access to source repositories, cloud platforms, CI/CD pipelines, and package registries. The operation cut all four of the malware's active C2 channels simultaneously, and CrowdStrike reported that more than 300 GitHub repositories had been poisoned with stolen developer credentials over the campaign's life.