The latest wave of the GlassWorm malware campaign did not arrive through a single compromised package or an isolated developer account. It moved instead through a web of familiar places: public repositories on GitHub, packages on npm, and extensions on VS Code and Open VSX — the ordinary infrastructure of modern software development. By the time researchers began piecing the campaign together this month, they said they had identified 433 compromised components across those ecosystems.
The scope of the campaign, described by researchers at Aikido, StepSecurity, Socket and members of the OpenSourceMalware community, suggests a threat actor with patience, technical discipline and an acute understanding of how developers work. Across platforms, investigators linked the activity through shared infrastructure, similar payloads and the repeated use of the same Solana blockchain address for command-and-control activity.
That last detail helps explain why the campaign has drawn such close attention. GlassWorm is not simply another case of malware hidden in a package registry. It represents a more adaptive style of supply-chain intrusion, one that combines account compromise, stealthy code injection and decentralized infrastructure in a way that complicates takedowns and stretches across the places developers use every day.
FutureCrime Summit 2026 Calls for Speakers From Government, Industry and Academia
An Old Technique Returns in a Broader Form
GlassWorm was first documented in earlier waves last year, when attackers used invisible Unicode characters to conceal malicious code inside files that appeared blank or harmless during ordinary review. In the current campaign, that same technique remains central. Aikido said the malicious code was encoded inside what looked like empty strings, then decoded and executed at runtime, making it difficult for humans — and some tooling — to notice during inspection.
The broad outlines of the current wave are now clearer. Aikido reported at least 151 affected JavaScript and TypeScript repositories on GitHub, with compromises appearing to cluster between March 3 and March 9. StepSecurity separately documented a large Python-focused campaign that it tracks as “ForceMemo,” saying that hundreds of GitHub accounts had been compromised and malicious code injected into Python repositories, with the earliest observed injections dating to March 8. Researchers later described these threads as part of a wider GlassWorm push spanning GitHub, npm and extension marketplaces.
Socket, for its part, said it had identified at least 72 malicious Open VSX extensions since January 31, including extensions that used transitive dependencies to deliver GlassWorm-related loader behavior. That expansion matters because the campaign is no longer confined to a single repository model or package manager. It has spread into the tooling layer itself — the editors and extensions that developers use to write, lint and ship code.
The Attack Followed the Developer Workflow
The mechanics of the intrusion were effective in part because they mirrored the normal rhythms of open-source maintenance. On GitHub, StepSecurity said the attackers appeared to take over developer accounts, rebase the latest legitimate commits with appended malware, and force-push the altered versions while preserving the original commit message, author and author date. To a casual observer, the repository could appear unchanged in spirit, even if it had been altered in substance.
Aikido described a similar pattern in JavaScript-heavy repositories, noting that the malicious changes often blended into routine edits such as version bumps, minor refactors and documentation tweaks. The firm said the apparent realism of many commits suggested either careful tailoring or the use of automated assistance to make malicious changes look ordinary.
From GitHub, the campaign appears to have branched outward. Malicious packages were published on npm, and compromised or malicious extensions appeared in VS Code and Open VSX registries. According to the reporting assembled by researchers, the campaign this month affected roughly 200 GitHub Python repositories, 151 JavaScript and TypeScript repositories, 72 VS Code or Open VSX extensions and 10 npm packages.
That progression — from repository compromise to package or extension publication — reflects how software supply chains increasingly overlap. A developer may clone a repository, install a package, and run an editor extension all in the same session. GlassWorm exploited that reality, distributing risk not through one choke point but through several, each close to the developer’s daily workflow.
The Blockchain Was Not a Side Note but a Delivery Mechanism
One of the campaign’s more unusual features is its reliance on the Solana blockchain as part of the control channel. Researchers said infected systems queried Solana regularly for fresh instructions, and that transaction memos on the chain were used to point victims to updated payload URLs. StepSecurity reported that between November 27, 2025, and March 13, 2026, it had observed 50 new transactions associated with the activity, many of them used to refresh those payload locations.
That choice is revealing. Traditional command-and-control infrastructure can be seized, blocked or sinkholed. Blockchain-based signaling, by contrast, introduces a layer of resilience. It gives operators a public but harder-to-disrupt channel for posting instructions and complicates the work of defenders trying to cut the malware off from its next stage. The tactic does not make the campaign invisible, but it does make it more durable.
Once those instructions were retrieved, the malware reportedly downloaded a Node.js runtime and executed a JavaScript information stealer. Researchers said the malware targeted cryptocurrency wallet data, credentials, access tokens, SSH keys and other data tied to developer environments. That focus is telling: developer machines are not simply laptops; they are often gateways to source code, cloud services, package registries and signing credentials.
In that sense, the objective was larger than the theft of a few secrets from an individual machine. A compromised developer endpoint can become a stepping stone to downstream software ecosystems, a route to privileged tokens or a way to tamper with projects that others trust. The campaign’s value lay not only in immediate theft, but in the access such theft could create.
A Supply-Chain Attack That Reflects the Moment
The latest GlassWorm wave arrives at a time when open-source security has become both more central and more difficult to police. The software world depends on public code, small maintainers and layers of third-party packages; at the same time, those layers create a wider attack surface than many organizations can realistically audit by hand. GlassWorm’s invisible Unicode technique sharpened that imbalance by taking advantage of a simple fact: code that cannot be easily seen is less likely to be challenged.
Researchers have also pointed to clues suggesting the operators may be Russian-speaking, including code comments and the malware’s decision to avoid running on systems with a Russian locale. But even those signals, security firms cautioned, are not enough on their own for confident attribution. In the world of malware analysis, hints of language and geography often remain suggestive rather than dispositive.
For developers, the practical guidance has been more immediate than the attribution debate. StepSecurity recommended checking codebases for a marker variable, lzcdrtfxyqiplpd, inspecting for a ~/init.json persistence file, looking for unexpected Node.js installations in home directories, searching for suspicious i.js files in recently cloned projects, and reviewing commit histories for mismatches between committer dates and original author dates.
Those are technical steps, but they point to a broader unease. GlassWorm did not succeed by breaking the open-source model outright. It succeeded by inhabiting it — hiding inside common workflows, familiar tools and routine trust. That may be why the campaign feels so unsettling to the engineers who have followed it: it has made the ordinary act of pulling code feel newly uncertain.