By NHI Mgmt Group Editorial TeamBased on Veracode: “GlassWorm: The First Self-Propagating VS Code Extension Worm” (October 20, 2025)

TL;DR: GlassWorm is the first self-propagating worm aimed at VS Code extensions, with at least 35,800 confirmed compromised installations and credential theft across NPM, GitHub, and OpenVSX, according to Veracode Threat Research. The pattern shows supply chain compromise is now capable of autonomous spread inside developer tooling, which makes identity and update governance part of the attack surface, not just code review.


At a glance

What this is: GlassWorm is a self-propagating VS Code extension worm that hid malicious code, stole developer credentials, and spread through extension updates.

Why it matters: It matters because developer tooling has become part of the identity and supply chain attack surface, so credential governance and update controls now affect code trust.


Context

Self-propagating supply chain malware turns trusted developer tooling into an attack distribution channel. The core governance problem is not just malicious code inside an extension, but the combination of weak publisher trust, automatic updates, and credentials that let one compromise seed the next. That makes software delivery controls and identity controls part of the same risk model.

GlassWorm matters because it sits at the intersection of supply chain security, secrets management, and non-human identity governance. Stolen NPM tokens, GitHub credentials, and marketplace access tokens are not merely stolen secrets, they are machine identities that can be reused to expand access. That is why extension trust, token lifecycle, and review discipline need to be treated as one control plane.


Key questions

Q: What fails first when a self-propagating extension worm enters a developer environment?

A: The first failure is usually trust in the extension publication and update chain. Once a malicious extension can execute on a developer machine, any exposed publishing token, automation credential, or synced account becomes a propagation path. The right focus is on which identities can distribute software, not just which files look suspicious.

Q: Why do developer tokens and publishing credentials make supply chain worms worse?

A: Because they convert one compromised workstation into a trusted distributor. If a token can publish packages, update extensions, or access connected repositories, the attacker no longer needs fresh phishing or malware delivery for each new victim. Scoped, short-lived, and revocable credentials reduce that propagation value.

Q: What are the signs that an extension supply chain compromise is spreading?

A: Look for unusual update patterns, new publisher activity from previously quiet accounts, unexpected token use, and outbound connections tied to unfamiliar services or infrastructure. In practice, propagation often shows up as repeated credential theft, rapid package changes, and extensions appearing in places they should never have been able to reach.

Q: Should organisations treat code review or identity controls as the primary defence against extension worms?

A: They need both, but neither is sufficient alone. Code review can miss hidden or obfuscated payloads, while identity controls can fail if tokens are over-scoped, long-lived, or shared across workflows. The safer model is to govern publisher identities, constrain update pathways, and inspect the content and behaviour of extensions together.


Technical breakdown

Why self-propagating extension worms scale so quickly

A self-propagating worm is malware that does not stop at one host. It uses credentials or update channels from an infected system to reach the next target, which creates exponential spread inside a trusted ecosystem. In the VS Code extension context, that means the attacker can move from a compromised machine to a publishing account, then to downstream developers who auto-update without any manual approval. The threat is not only code execution, but trusted distribution at scale.

Practical implication: Treat extension publication and update channels as high-risk trust boundaries, not ordinary software distribution paths.

How invisible Unicode and backup C2 evade standard review

GlassWorm used invisible Unicode and Private Use Area characters to hide malicious code in plain sight, which weakens human review and some static inspection workflows. It also used blockchain transaction memos and Google Calendar as command and control infrastructure, blending malicious signalling into legitimate services that are harder to block without collateral impact. That combination matters because detection based only on obvious domains or visible source code will miss the behaviour pattern.

Practical implication: Add controls that inspect encoded text, obfuscated payloads, and unusual outbound service use, not just visible source diffs.

Why stolen NHI credentials turn one compromise into many

The worm harvested NPM tokens, GitHub credentials, and OpenVSX access tokens, then used them to compromise additional packages and extensions. That is a classic machine identity problem: a token issued for publishing or automation becomes the bridge to broader compromise when it is reused, over-scoped, or not rotated quickly. The attack shows that standing access inside developer pipelines can become propagation fuel, not just a one-time intrusion vector.

Practical implication: Map developer tokens to owners, scopes, and expiry, and revoke or rotate any credential that can publish or update software.


Threat narrative

Attacker objective: The attacker wants to create a self-sustaining supply chain worm that spreads through developer tooling, steals machine credentials, and expands control without repeated manual effort.

  1. Entry occurs when a developer installs or updates a compromised VS Code extension from a trusted marketplace source.
  2. Credential_harvested follows as the malware steals NPM tokens, GitHub credentials, and OpenVSX access tokens from the infected environment.
  3. Escalation and propagation happen when those stolen credentials are used to compromise additional packages and extensions, turning each victim into a new distribution node.
  4. Impact is autonomous spread across the software development ecosystem, plus secondary theft, remote access, wallet draining, and internal reconnaissance.

Read and download The State of NHI & AI Agent Breach Report 2026, covering 200+ breaches impacting Non-Human Identities including AI Agents.


NHI Mgmt Group analysis

Self-propagating supply chain malware is now an identity problem, not just a code integrity problem. GlassWorm only becomes dangerous at scale because one stolen publishing token can authorise the next compromise. That changes the governance question from "is the code malicious?" to "which machine credentials can move trust across the ecosystem?" Practitioners need to manage publishing tokens as privileged identities, not convenience secrets.

Invisible-code attacks expose a verification trust gap in developer workflows. When malicious payloads disappear from the editor view, the control failure is not only weak scanning but overconfidence in human review as a detection layer. The article also shows why update trust and publisher reputation cannot stand alone when auto-update is enabled by default. Security teams should treat review bypass as a design assumption to remove, not a rare exception.

Extension ecosystems are converging with broader software supply chain risk. The same techniques that compromise npm, GitHub, and extension registries can move across build systems, package managers, and agentic development workflows. That convergence means identity governance, supply chain security, and endpoint controls must be aligned around one question: who or what is allowed to publish trusted code? Practitioners should plan for ecosystem-level propagation, not isolated package incidents.

GlassWorm sharpens the case for machine identity lifecycle governance in developer tooling. Tokens used by build and extension publishers need scoped issuance, fast revocation, and ownership traceability because they can be turned into propagation mechanisms. This is where OWASP-NHI and standard IAM controls meet software supply chain risk in a very direct way. Practitioners should classify developer publishing tokens as privileged non-human identities and govern them accordingly.

Obfuscation plus legitimate service abuse is becoming a repeatable attacker pattern. Using Unicode steganography and ordinary consumer services for command and control reduces the value of signature-only detection and simple blocklists. The control gap is not a missing alert, it is a detection strategy that assumes adversaries will look obviously malicious. Security teams should build detections for behaviour, not just known-bad indicators.

From our research library:

What this signals

Developer tooling is now a supply chain control plane. Once extension publishers, package managers, and CI systems share credentials, the difference between software delivery and identity governance starts to collapse. Security teams should expect attackers to target the weakest token, then use it to inherit trust across the rest of the pipeline.

Machine identity lifecycle is the real containment problem here. A publishing token that is not owned, scoped, and rotated like a privileged account will eventually be used as one. That means extension ecosystems need the same lifecycle rigor that mature IAM programmes already apply to human admins and service accounts.

Verification trust has to move from the editor to the issuance point. Invisible code can evade eyeballing, and legitimate services can hide malicious C2, so the strongest control is deciding who can mint and reuse the identities that publish code in the first place. Teams that keep reviewing only what is visible will keep missing how the next worm spreads.


For practitioners

  • Audit extension trust chains Inventory installed VS Code extensions, identify inactive or unverified publishers, and remove any extension that cannot be tied to a clear ownership and review path.
  • Rotate publishing and automation tokens Revoke and reissue NPM, GitHub, and marketplace tokens used on developer workstations or in pipelines, and shorten their usable lifetime where publishing is required.
  • Disable blind auto-updates for extensions Require manual review or staged rollout for extension updates in higher-risk environments, especially where developer machines have access to source, build, or release systems.
  • Inspect for Unicode and script obfuscation Add static and behavioural checks for invisible Unicode, Private Use Area characters, and other obfuscation patterns in packages and extensions before they reach developers.
  • Monitor for downstream credential abuse Watch for unexpected use of developer tokens, abnormal publishing events, and sudden extension or package ownership changes that indicate a token has been reused maliciously.

Key takeaways

  • GlassWorm shows that extension ecosystems can be used for autonomous malware propagation, not just isolated package compromise.
  • The article ties spread to stolen developer credentials, making machine identity governance part of supply chain security.
  • The most effective containment point is credential issuance and update trust, not post-infection code review alone.

Standards & Framework Alignment

This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.

OWASP Non-Human Identity Top 10 and MITRE ATT&CK address the attack and risk surface, while CIS Controls v8 sets the governance and control requirements practitioners need to meet.

FrameworkControl / ReferenceRelevance
OWASP Non-Human Identity Top 10NHI-02 — Secret LeakageGlassWorm stole publishing and access tokens from developer environments.
NHI-07 — Long-Lived SecretsThe worm gains propagation power when tokens remain valid long enough to be reused.
NHI-05 — Overprivileged NHIPublishing and automation tokens become propagation channels when they carry excess scope.
Recommendation — Scan developer endpoints and pipelines for leaked NHI secrets and revoke exposed credentials immediately. Shorten token lifetime and rotate developer publishing credentials on a strict schedule. Restrict extension and package publishing tokens to the minimum permissions needed for each workflow.
MITRE ATT&CKTA0006; TA0008 — Credential Access; Lateral MovementThe attack harvests credentials and uses them to spread to additional systems and packages.
Recommendation — Map the worm's credential theft and propagation path to TA0006 and TA0008 to prioritize detection coverage.
CIS Controls v8CIS-5 — Account ManagementDeveloper and publishing accounts need tighter lifecycle control when they can seed supply chain spread.
Recommendation — Apply account lifecycle controls to remove stale publishing access and verify ownership of developer accounts.

Key terms

  • Self-propagating worm: A self-propagating worm is malware that automatically spreads from one compromised system to another without waiting for a human operator to copy it. In software supply chains, propagation often happens through trusted accounts, package registries, or update channels that the worm can reuse.
  • Non-Human Identity (NHI): A digital identity assigned to a non-human entity such as a software application, service account, API key, bot, machine, or AI agent that enables it to authenticate and interact with systems without direct human involvement. NHIs now outnumber human identities in most enterprises by 25 to 50 times.
  • Command-and-control: Command-and-control is the communication channel an attacker uses to issue instructions to malware and receive results back from a compromised host. For XWorm, the channel is encrypted and used for session management, payload delivery, surveillance, and modular expansion of capabilities after compromise.
  • Extension Supply Chain Risk: The risk that a browser extension appears trustworthy in a marketplace but later performs data collection or other malicious behavior. This combines publisher trust, permission scope, and update control, and it matters because the extension can become an identity-bearing channel into sensitive browser sessions.

Deepen your knowledge

NHI Foundation Level course, the industry's only accredited NHI security programme, covers NHI governance, machine identity security, and secrets management. It helps security and identity practitioners bring lifecycle control to the credentials that make developer tooling trusted.
NHIMG Editorial Note
Published by the NHIMG editorial team on August 2, 2026.
Updated on October 12, 2026.
NHI Mgmt Group, the independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org