Researchers disclosed on January 31, 2026, a supply chain attack called GlassWorm that has been spreading through the Open VSX marketplace for VS Code extensions since at least October 2025. The malware is self-propagating—infected developers unknowingly spread it further when they publish their own extensions—and uses the Solana blockchain for command-and-control infrastructure that cannot be taken down.

“This is one of the most sophisticated supply chain attacks we’ve ever analyzed,” according to Koi Security researchers.

Incident overview

AttributeDetails
Campaign nameGlassWorm
First observedOctober 2025
Platforms affectedOpen VSX, Visual Studio Marketplace
Target OSmacOS (primary), Windows (secondary)
C2 infrastructureSolana blockchain + Google Calendar
Primary payloadCredential stealer, cryptojacker
Self-propagationYes (worm behavior)
DiscoveryKoi Security

Attack scope

MetricCount
Open VSX infected downloads35,800+
VSCode Marketplace downloads22,000+
Malicious extensions (second wave)24
Targeted crypto wallet extensions49
First observedOctober 2025
Latest activityFebruary 2026

The attack continues to resurface. On January 30, 2026, four established Open VSX extensions from the legitimate publisher “oorzc” had malicious versions pushed after the account was compromised—a significant escalation from previous typosquatting tactics.

Account compromise details

AttributeDetails
Compromised accountoorzc
Account age2+ years (established, trusted)
Clean extensionsPreviously safe for over 2 years
Attack methodStolen/leaked publishing credentials
Extensions affected4 popular packages

This represents a shift from typosquatting to trusted-publisher compromise—a more dangerous attack vector because users have no reason to suspect extensions from established developers.

Attack timeline

DateEvent
October 17, 2025Seven OpenVSX extensions compromised with initial GlassWorm payload
October 19, 2025Ten extensions still actively distributing malware
Late 2025Campaign pivots from Windows to macOS targeting
December 2025Second wave: 24 extensions impersonating popular tools (Flutter, React, Tailwind, Vim, Vue)
January 30, 2026Legitimate “oorzc” developer account compromised
January 31, 2026Koi Security publishes full technical analysis

How GlassWorm spreads

The malware hides inside extensions offering real functionality—code formatters, themes, language support. Once installed, the extension:

  1. Steals developer credentials — SSH keys, cloud tokens, Git credentials, NPM tokens, GitHub tokens
  2. Injects malicious code into any VS Code extension projects on the system
  3. Establishes persistence that survives VS Code restarts
  4. Harvests OpenVSX access tokens — Uses stolen credentials to publish infected packages automatically

When the developer publishes their now-infected extension, the cycle repeats. Each victim becomes a new infection vector.

Self-propagation mechanism

PhaseAction
1Malicious extension installed by victim
2Credential harvesting (NPM, GitHub, OpenVSX tokens)
3Scans system for VS Code extension projects
4Injects malicious loader into extension activate() entry points
5Victim publishes infected extension to marketplace
6New victims download infected extension
7Cycle repeats autonomously

Solana blockchain C2

GlassWorm uses the Solana blockchain as a dead-drop for C2 addresses. The malware:

  1. Queries transactions from a hardcoded wallet address
  2. Reads the memo field (arbitrary text attached to blockchain transactions)
  3. Extracts updated C2 server locations from the memo
  4. Falls back to Google Calendar API if blockchain lookup fails

C2 Wallet: 28PKnu7RzizxBzFPoLp69HLXp9bJL3JFtT2s5QzHsEA2

Why blockchain C2 is dangerous

FactorImpact
ImmutabilityTransactions cannot be deleted or modified
Censorship resistanceNo domain registrar or hosting provider to contact
PseudonymityWallet addresses harder to attribute than domains
Legitimate trafficSolana RPC requests blend with normal developer activity
Backup mechanismGoogle Calendar provides redundant C2 path

Triple-layered C2 infrastructure

GlassWorm uses a resilient multi-channel C2 architecture:

LayerMethodPurpose
PrimaryDirect IP (217.69.3.218)Fast, reliable communication
SecondarySolana blockchain memosTakedown-resistant instruction delivery
TertiaryGoogle Calendar eventsBackup command channel

This multi-pronged approach ensures attackers maintain control even if one or two channels are disrupted.

Invisible code obfuscation

GlassWorm uses stealth techniques researchers hadn’t seen in the wild before: invisible Unicode characters that make malicious code literally disappear from code editors. The malicious payload is present in the file but invisible to developers reviewing the code.

TechniqueDescription
Zero-width charactersPayload encoded using invisible Unicode
Editor blindnessCode appears clean in VS Code, GitHub, standard review
Tooling evasionMany AST parsers and linters don’t flag invisible chars

Platform evolution

The threat actor pivoted from Windows-focused activity to macOS:

Windows (original)macOS (evolved)
PowerShell executionAppleScript execution
Registry persistenceLaunchAgents persistence
Standard infostealersAtomic Stealer variants

Target platform and data

The payloads now primarily target macOS (both Apple Silicon and Intel). Data exfiltrated includes:

CategorySpecific targets
Browser dataLogins, cookies, history, wallet extensions
Cryptocurrency49 wallet browser extensions, Ledger Live, Trezor Suite
System credentialsiCloud Keychain databases, Safari cookies
Developer secrets~/.aws, ~/.ssh, NPM _authToken, GitHub tokens
VPN configsFortiClient VPN configurations
NotesApple Notes content

Trojanized hardware wallet apps

The malware now checks for hardware cryptocurrency wallet applications like Ledger Live and Trezor Suite and replaces them with trojanized versions—a significant escalation targeting high-value crypto holders.

Advanced capabilities

Beyond credential theft, GlassWorm provides attackers with:

CapabilityRisk
SOCKS proxy deploymentVictim machines become criminal infrastructure
Hidden VNC serverComplete remote access without user knowledge
Keychain password theftSystem-level credential access on macOS
Persistent backdoorSurvives VS Code restarts and updates

Technical indicators

IndicatorValue
C2 Server217.69.3[.]218
Secondary C2140.82.52[.]31:80/wall
Solana Wallet28PKnu7RzizxBzFPoLp69HLXp9bJL3JFtT2s5QzHsEA2

Behavioral indicators

IndicatorDetection method
Outbound Solana RPC connectionsNetwork monitoring from dev machines
Google Calendar API callsUnexpected Calendar access from VS Code
Extension activate() modificationsFile integrity monitoring
New LaunchAgentsmacOS persistence monitoring
Invisible Unicode in sourceSpecialized code review tools

Attribution hints

The malware includes locale checks that prevent execution on systems configured for Russian language, a characteristic consistent with Russian-speaking cybercriminal groups who avoid targeting domestic systems to reduce law enforcement attention.

What developers should do

Immediate actions

PriorityAction
CriticalAudit installed extensions—remove anything from unrecognized publishers
CriticalCheck extension source code—inspect activate() entry points
HighPrefer official Visual Studio Marketplace over Open VSX when possible
HighRotate credentials if suspicious extensions were installed (SSH keys, cloud tokens, NPM, Git)
HighVerify hardware wallet applications haven’t been modified

Detection

Monitor forIndicates
Connections to C2 IPs listed aboveActive infection
Unexpected Solana RPC endpoint connectionsC2 communication
Extension update histories with unexpected version bumpsCompromise
New LaunchAgents referencing VS CodePersistence mechanism
Outbound traffic during VS Code sessionsData exfiltration

Platform response

Open VSX removes malicious extensions as they’re reported, but new variants continue to appear. The January 30 incident—where an established, trusted publisher account was compromised—demonstrates that even careful extension vetting can be defeated by account takeovers.

Eclipse Foundation response

The Open VSX security team (operated by Eclipse Foundation) took the following actions:

ActionStatus
Unauthorized publishing confirmedComplete
Compromised tokens revokedComplete
Malicious releases removedComplete
Clean versions restoredAvailable
Account recoveryIn progress

As of the latest update, all available versions of the affected “oorzc” extensions are clean.

Security gaps

IssueImpact
No mandatory 2FA for publishersAccount takeover enables trusted-publisher abuse
Reactive removal onlyMalware distributed during detection gap
No code signingDifficult to verify extension integrity
Limited automated analysisInvisible Unicode and blockchain C2 evade detection

Recommendations for organizations

PriorityAction
CriticalImplement extension allowlisting for developer environments
HighMonitor for Solana RPC and unusual API traffic from dev machines
HighDeploy file integrity monitoring on VS Code extension directories
MediumRequire 2FA for all developer marketplace accounts
OngoingSecurity awareness training on supply chain risks

Context

GlassWorm represents a new evolution in supply chain attacks: self-propagating malware that uses blockchain infrastructure for takedown-resistant C2 and invisible code obfuscation to evade review. The combination of worm behavior, trusted-publisher compromise, and crypto-targeting payloads makes this particularly dangerous for organizations with developer populations.

Developers working with VS Code extensions should treat the supply chain as hostile and verify extensions at every update, not just initial installation.

Incident response guidance

If you installed any extension from the IOC list:

StepAction
1Treat as credential exposure event
2Remove the malicious extension
3Delete on-disk artifacts
4Rotate all developer credentials (SSH, NPM, GitHub, Git)
5Verify hardware wallet applications
6Check for LaunchAgents (macOS) or scheduled tasks (Windows)
7Scan for connections to known C2 IPs

Organizations should also consider disabling auto-update for extensions and implementing a centralized allowlist for approved packages.