TL;DR: A malicious VS Code extension was discovered that silently reads an undeclared configuration key, fetches base64-encoded commands from a remote URL, and executes them on every startup, according to Knostic. The pattern shows how developer workstation trust can be broken by source and compiled artifact drift, not just by obvious malware.
Editorial analysis by NHI Mgmt Group, based on content published by Knostic: “New Malicious VS Code Extension Backdoor: Remote Text Fetcher”.
Key questions
Q: What breaks when a VS Code extension can execute startup commands without user interaction?
A: The control that breaks is the assumption that installed developer tooling remains passive until a user invokes it.
Q: Why do undeclared configuration keys in extensions create security risk?
A: They create risk because declared settings no longer describe the real control surface.
Q: How should teams evaluate whether an IDE extension is safe to deploy?
A: They should test the compiled artefact, not just the marketplace listing or source repository.
Practitioner guidance
- Audit extension startup execution paths Inventory which IDE extensions activate on startup, then flag any that can fetch remote content or execute shell commands before user interaction.
- Compare manifests to compiled artefacts Review package.json declarations against the shipped VSIX or built extension.js to find hidden configuration namespaces and behaviour drift.
- Block network-to-shell command flows Reject extensions that take HTTP responses, decode them, and pass the result into child_process.exec or equivalent shell runners.
Bottom line: A VS Code extension can become an execution channel when startup activation, hidden configuration reads, and shell execution are combined.
Explore further
View Full Forum → | NHI Foundation Course → | Our Services → | Read the full analysis →
Source and compiled artefact drift is the governance failure this case exposes: the manifest said one thing, while the shipped binary read a different configuration namespace and executed a different control path. That breaks the assumption that extension review of declared settings is enough to understand runtime authority. Practitioners need to treat compiled artefacts as the real policy boundary, not the source tree alone.
A few things that frame the scale:
- Only 44% of developers are reported to follow security best practices for secrets management, exposing a significant developer behaviour gap, according to the State of Secrets in AppSec.
A question worth separating out:
Q: What should security teams do when extension behaviour differs from its published manifest?
A: Treat that difference as a control failure, not a documentation issue. Behavioural drift means the extension may be using a different trust path than the one exposed to users. Teams should quarantine the package, inspect the built artefact, review workspace-scoped inputs, and determine whether the extension can initiate local commands.
👉 Read our full editorial: Malicious VS Code extensions can execute commands at startup