Security researchers have identified a novel and highly sophisticated supply chain attack deploying a worm named GlassWorm. The campaign targets developers using Visual Studio Code by publishing malicious extensions on the OpenVSX marketplace. GlassWorm exhibits advanced capabilities, including code obfuscation using invisible Unicode characters to bypass human review and static analysis. In a significant innovation, the worm uses the Solana blockchain for its command-and-control (C2) infrastructure, making it extremely resilient to takedowns. The malware's primary goals are to steal developer credentials for platforms like NPM, GitHub, and Git, drain cryptocurrency wallets, and propagate itself to other software packages.
GlassWorm represents a significant evolution in supply chain attacks. The worm propagates through compromised VS Code extensions. Its most notable feature is its evasion technique, as reported by Koi Security. The malicious JavaScript code is hidden using Unicode variation selectors, which are non-rendering characters. In a code editor, these selectors appear as harmless whitespace or blank lines, deceiving developers during code reviews, while remaining fully executable by the JavaScript engine.
The C2 mechanism is equally advanced. Instead of traditional domains or IP addresses, GlassWorm queries the Solana blockchain for specific transactions. The attackers embed instructions, such as the URL for the next-stage payload, into the memo field of a transaction. To update the payload location, the attacker simply needs to send a new transaction, making the C2 infrastructure decentralized and censorship-resistant. Once active, the worm steals credentials, exfiltrates data, installs SOCKS proxies and hidden VNC servers for remote access, and uses the stolen credentials to compromise other packages, continuing its propagation.
This attack combines multiple advanced TTPs:
T1195.002 - Compromise Software Supply Chain. The attack vector is malicious extensions published to the OpenVSX marketplace. The worm's self-propagation capability, using stolen credentials to compromise more packages, is a key part of this technique.T1027 - Obfuscated Files or Information. The use of invisible Unicode variation selectors is a highly novel form of obfuscation designed to defeat both human analysis and automated scanning tools.T1071.006 - Web Protocols over Non-standard Port (conceptual equivalent). The use of the Solana blockchain as a C2 mechanism is a cutting-edge technique. It functions as a resilient, decentralized data store for C2 instructions, abusing a legitimate protocol for malicious purposes. This makes takedown of the C2 infrastructure nearly impossible.T1555 - Credentials from Password Stores. The malware specifically targets and steals credentials for NPM, GitHub, and Git, which are often stored in configuration files or credential managers on developer machines.The potential impact of GlassWorm is severe. A successful infection of a developer's machine can lead to the compromise of entire software projects and organizations. By stealing GitHub and NPM credentials, the attackers can inject malicious code into legitimate software packages, triggering a widespread supply chain attack affecting countless downstream users. The theft of cryptocurrency is a direct financial loss, while the installation of proxies and VNC servers creates a persistent backdoor for further attacks. The resilience of the blockchain-based C2 means that compromised machines can remain under attacker control for extended periods.
Detecting GlassWorm requires looking beyond traditional indicators:
| Type | Value | Description |
|---|---|---|
network_traffic_pattern |
Outbound traffic to Solana RPC endpoints |
Monitor for unexpected processes on developer workstations making connections to known Solana public RPC nodes. |
file_path |
~/.vscode/extensions/ |
Monitor for newly installed or modified VS Code extensions, especially those with poor reviews or from unknown publishers. |
command_line_pattern |
npm publish or git push |
Monitor for automated or unusual execution of publishing commands that could indicate propagation. |
process_name |
node.exe, code.exe |
Monitor processes associated with VS Code for unusual network activity, file modification, or child process spawning. |
D3-DA: Dynamic Analysis. Monitor for suspicious activities like network connections to blockchain APIs, file system enumeration, or attempts to access credential stores.D3-OTF: Outbound Traffic Filtering. Restrict and monitor outbound connections from developer tools and build servers. Alert on connections from code.exe or node.exe to known public Solana RPC endpoints, as this is highly anomalous behavior.D3-EAL: Executable Allowlisting applied to a development environment.Enforce policies requiring that all internal software packages and external dependencies are signed, and verify the signatures during the build process.
Run development and build processes in isolated environments (containers, VMs) to limit the malware's access to the host system and network.
Mapped D3FEND Techniques:
Restrict and monitor outbound network connections from developer workstations and build servers to prevent communication with malicious C2 infrastructures like the Solana blockchain.
Mapped D3FEND Techniques:
Educate developers on the dangers of untrusted software extensions and the importance of vetting third-party code.
Given that GlassWorm's static obfuscation defeats traditional code scanning, dynamic analysis is the most effective detection method. All new or updated VS Code extensions should be automatically installed and run within an instrumented sandbox before being allowed in the production developer environment. The sandbox should monitor for the specific malicious behaviors of GlassWorm: attempts to read credential files (e.g., .npmrc, .git-credentials), enumeration of cryptocurrency wallet extension directories, and, most critically, outbound network connections to Solana RPC endpoints. Any extension exhibiting these behaviors should be blocked and trigger an immediate security alert.
To counter the resilient blockchain-based C2, implement strict egress filtering on developer workstations and build servers. By default, deny all outbound traffic and only allow connections necessary for development, such as to corporate code repositories, official package managers, and specific collaboration tools. Specifically, traffic to known public blockchain RPC endpoints (including Solana, Ethereum, etc.) from developer tools like node.exe or code.exe should be blocked and logged. This severs the C2 communication channel, preventing the malware from receiving instructions or exfiltrating data, even if the initial infection succeeds.
Harden the configuration of VS Code and related development tools. Use VS Code's workspace trust features to limit the capabilities of extensions in untrusted projects. Enforce a policy that restricts extension installation to a pre-approved list from a private, internal marketplace. Furthermore, configure Git and NPM to use system-level credential helpers that integrate with secure hardware (like a YubiKey or TPM) or enterprise credential vaults, rather than storing plaintext credentials on disk. This prevents GlassWorm from easily stealing the credentials needed for propagation.

Cybersecurity professional with over 10 years of specialized experience in security operations, threat intelligence, incident response, and security automation. Expertise spans SOAR/XSOAR orchestration, threat intelligence platforms, SIEM/UEBA analytics, and building cyber fusion centers. Background includes technical enablement, solution architecture for enterprise and government clients, and implementing security automation workflows across IR, TIP, and SOC use cases.
Help others stay informed about cybersecurity threats