← Threat Library
high supply chain openvsx

Count Dooku

Supply-chain campaign that re-published legitimate VS Code extensions to Open VSX with a malicious JavaScript IIFE appended after the source-map comment — placed outside the source map so casual review and diff tools miss it. The injected payload beacons to a hard-coded C2. Tracked by opensourcemalware.com.

Disclosed July 11, 2026
Blast radius 45+ republished extensions across 25 throwaway Open VSX accounts
Status delisted

What happened

Count Dooku is a supply-chain campaign that takes legitimate, popular VS Code
extensions and re-publishes them to Open VSX
under
throwaway publisher namespaces. The re-published package is byte-for-byte the
real extension with one change: a malicious JavaScript IIFE appended to the
bundled extension.js after the //# sourceMappingURL= comment
.

Putting the payload after the source-map reference is the whole trick. The
legitimate code, its source map, and every line a reviewer would diff against
the upstream package all appear normal — the injected block sits past the point
where most people (and many automated diff tools) stop reading. On activation
the payload beacons to a hard-coded C2 (https://beststats.world/ping).

Because the carrier is a genuine, useful extension, static reputation and
"does it work?" checks pass cleanly — which is exactly why our own conservative
scorer initially rated many of these LOW. They were surfaced by
cross-referencing the opensourcemalware.com
community threat feed against our catalog.

Why it matters

Open VSX has no publisher-identity verification comparable to the Microsoft
Marketplace, so an attacker can stand up 25+ disposable namespaces and mirror
the most-installed extensions faster than takedowns land. Anyone whose editor
(Cursor, Windsurf, VSCodium, Gitpod, and other VS Code forks default to Open
VSX) resolves these names pulls the trojanized build.

How to spot it

The signature is structural, not string-based:

  1. A bundled JS file (extension.js / dist/*.js) has executable code after
    its //# sourceMappingURL= trailer
    — a source map is supposed to be the
    last thing in the file.
  2. That trailing block is a self-invoking function ((function(){…})() /
    (()=>{…})()) containing network egress (fetch/https.request/XMLHttpRequest)
    to a domain absent from the extension's declared functionality.
  3. The package is a near-exact copy of a more-installed extension published
    under a different, low-reputation Open VSX namespace.

See the detection proposal filed with this campaign for the YARA rule and the
scoring change.

Affected extensions (45)

NameStoreIDMalicious versionArchived
pokemon-pets
View analysis
openvsxAnasfiguigui.pokemon-pets1.3.0no
codebuddy-ai
View analysis
openvsxCodebuddyAI.codebuddy-ai1.7.0no
dadroit-json-generator
View analysis
openvsxDadroit.dadroit-json-generator1.2.2no
csv-excel-viewer
View analysis
openvsxDevelopment42.csv-excel-viewer1.9.0no
competitive-programming-helper
View analysis
openvsxDivyanshuAgrawal.competitive-programming-helper2026.6.1780853884no
doubao-app-share-vscode-plugin
View analysis
openvsxDoubao.doubao-app-share-vscode-plugin0.1.2no
html-preview-pro
View analysis
openvsxGingerTurtle.html-preview-pro1.1.0no
kimi-vscode
View analysis
openvsxKingleo.kimi-vscode0.0.6no
claude-color-theme
View analysis
openvsxLumidew.claude-color-theme0.0.6no
vscode-paste-and-indent
View analysis
openvsxRubymaniac.vscode-paste-and-indent0.0.8no
docxreader
View analysis
openvsxShahilKumar.docxreader1.4.2no
Document-Viewer-VSCode-Extensions
View analysis
openvsxSyncfusionInc.Document-Viewer-VSCode-Extensions4.0.4no
open-excel
View analysis
openvsxTomRileyTech.open-excel0.0.1no
vscode-1c-metadata-viewer
View analysis
openvsxZerobig.vscode-1c-metadata-viewer0.2.3no
gemini-cli-launcher
View analysis
openvsxacebunny00.gemini-cli-launcher0.1.0no
node-essentials
View analysis
openvsxafractal.node-essentials1.1.0no
a-file-icon-vscode
View analysis
openvsxatommaterial.a-file-icon-vscode2.0.1no
markitdown-vscode
View analysis
openvsxbioinfo.markitdown-vscode0.3.1no
vscode-ripgrep
View analysis
openvsxbokuweb.vscode-ripgrep0.2.2no
vscode-deepseek
View analysis
openvsxcolourafredi.vscode-deepseek1.6.2no
pptx-preview
View analysis
openvsxcorotata.pptx-preview1.0.1no
sql-server-profiler-tool
View analysis
openvsxepolicardo.sql-server-profiler-tool0.5.1no
vscode-fabric
View analysis
openvsxfabric.vscode-fabric0.39.18no
hostinger-connector
View analysis
openvsxhostinger-official.hostinger-connector1.2.3no
web-viewer
View analysis
openvsxhss.web-viewer0.0.2no
node-runner
View analysis
openvsxhuanent.node-runner1.0.2no
claude-commit
View analysis
openvsxjuajnnlb.claude-commit1.0.4no
claude-commit
View analysis
openvsxjuanlb.claude-commit1.0.1no
plan-uml
View analysis
openvsxjustuskarlsson.plan-uml0.0.8no
protobuf
View analysis
openvsxkangping.protobuf1.1.6no
vscode-openrouter-extension
View analysis
openvsxkhaled.vscode-openrouter-extension0.5.0no
yaml-with-script
View analysis
openvsxmatthiesen-technology.yaml-with-script1.1.3no
Lisp
View analysis
openvsxmattn.Lisp0.1.12no
streamlit-preview
View analysis
openvsxmjethwa-streamlit.streamlit-preview3.3.4no
csv-to-table
View analysis
openvsxphplasma.csv-to-table1.4.1no
vscode-playwright-test-runner
View analysis
openvsxsakamoto66.vscode-playwright-test-runner1.4.1no
json-server
View analysis
openvsxsarthikbhat.json-server0.0.4no
md-editor
View analysis
openvsxseepine.md-editor0.1.1no
bazel-vscode
View analysis
openvsxsfdc-eng.bazel-vscode0.26.106021821no
office-editor
View analysis
openvsxshubhamprajapati1202.office-editor1.0.1no
markdown-pdf-plus
View analysis
openvsxtom-latham.markdown-pdf-plus1.1.0no
cursor-ai
View analysis
openvsxvbrocket.cursor-ai0.2.0no
vscode-ollama
View analysis
openvsxwarm3snow.vscode-ollama1.2.1no
obsidian-md-vsc
View analysis
openvsxwillasm.obsidian-md-vsc1.3.0no
luahelper
View analysis
openvsxyinfei.luahelper0.2.29no

Indicators of compromise (5)

urlhttps://beststats.world/pingC2 beacon endpoint reached by the appended payload
domainbeststats.worldCount Dooku C2 domain
ext_idopenvsx-namespace:a373083284542Attacker Open VSX publisher namespace (multi-extension)
ext_idopenvsx-namespace:henry-davis-5045Attacker Open VSX publisher namespace
ext_idopenvsx-namespace:dwells3532Attacker Open VSX publisher namespace

Sources