Check V7 · execution family · automatic · one of the 17 VS Code Marketplace checks
The question this check asks: does this extension run code the moment the editor activates it — or is it a theme, an icon set, a snippet pack, something the editor renders without executing? For almost every extension the answer is yes. V7 exists to say so where it matters and to stay a note everywhere else.
An extension that runs code runs inside the editor's process, with the file system, the terminal, the network and every workspace the editor opens. That is the whole point of most extensions — a linter, a debugger, a language server all need it — and why "runs code" cannot be a fault on its own. The Marketplace records the fact as a property, Microsoft.VisualStudio.Code.ExecutesCode, and the manifest says the same thing structurally: an extension with a main entry (desktop) or a browser entry (web) executes; a theme contributes contributes.themes and neither. V7 reads both and fires if either says yes.
The shape that matters is not "runs code" but "runs code, and nothing else about the listing has been earned yet": a listing under 90 days old, from a publisher with no verified domain, that executes. That is the launch shape of every named campaign. Secure Annex's suspublisher18.susvsex (5 November 2025) — vibe-coded ransomware, description "Just testing" — was a publisher created that day, no verified domain, no source repository, and ExecutesCode: V1, V2, V5 and V7 all on a listing hours old, a REVIEW on provenance alone (an inference from the write-up — Microsoft removed the listing on 6 November 2025).
V7 sits in three of the four dimensions RepoGates derives from the 17 checks — open in an editor, install and run and hand to an AI agent: code that runs when the extension activates runs the same way whether a person or an agent opened the workspace.
One finding, vsx-executes-code, graded on the listing rather than on the declaration. On an established listing — publishedDate 90 days ago or more — or from a publisher who has verified a domain, it is INFO: a note that says "runs code in the editor, a scope note, not a fault" and costs nothing. On a listing under 90 days old and from a publisher with no verified domain it is MEDIUM, 5 points. The scoring table's evidence note, verbatim:
"V7; scope note for most extensions; MED on a new listing from an unverified publisher"
The verdict engine behind all 17 checks: any CRITICAL finding is BLOCK; any HIGH or MEDIUM is REVIEW; INFO only is PASS. The score is separate — 100 minus every fired penalty, floored at zero; 80 and above green, 50 to 79 amber, under 50 red. A MEDIUM V7 is a REVIEW, but it never fires alone: the very condition that grades it MEDIUM — an unverified publisher on a listing under 90 days — also fires V1 at HIGH, 15 points, and a listing under 30 days fires V2 at HIGH, 12 points as well. Add V5's 12 points for no source and the susvsex shape costs 44 points between the four of them — a score of 56, amber, REVIEW. V7's five points are the smallest part of that; its job in the chord is to state that the thing with no provenance also executes.
In the 18 September 2026 measurement of the 100 most-installed extensions, V7 fired as a note on 87 of 100 and as MEDIUM on none — every one of those listings is established by construction. The run came out 99 PASS, 1 REVIEW, 0 BLOCK. The 13 that did not fire are themes and snippet packs, which declare no entry point. A note is not a false positive; it costs no points and changes no verdict.
The MEDIUM grading has a real cost, stated plainly: a hobbyist's first extension — new listing, no domain verified because the publisher owns none — is exactly the shape V7 escalates on, for its first 90 days or until a domain is verified. That is the trade: the launch shape of every named campaign is a REVIEW with the warn action, and every honest first upload pays it for one quarter — at warn, never at refusal.
V7 reads a declaration. It does not read the bundle, and a declaration says nothing about what the code does. Koi Security's MaliciousCorgi pair — whensunset.chatgpt-china and zhukunpeng.chat-moss, about 1.5 million installs between them as quoted by BleepingComputer and The Hacker News in January 2026 — were functioning, popular, established extensions whose hidden code read every opened file and posted it to a server in China. On that shape V7 is a note, as it is for 87 of the top 100; the exfiltration lived in the bundle, and no listing check reads it. The metadata tier would not have flagged MaliciousCorgi; a deep scan of the bundle is the tool for that.
The inverse limit is just as real. ReversingLabs' 19 extensions (10 December 2025) were themes: ExecutesCode would not have been declared by the theme itself, and V7 is silent on a theme. The trojan travelled as banner.png inside a bundled copy of path-is-absolute in node_modules — an archive with two binaries, not an image — and nothing in that package's file list is an executable. V12 sees a PNG. RepoGates assesses a Marketplace extension on request — through the API, the MCP server (platform="vsx") and the preflight for code --install-extension. It does not see an extension installed from the editor's own UI, or one that auto-updates; the board on marketplace pages is not built yet; Open VSX (where VSCodium, Cursor and Windsurf install from) is a different registry and is not assessed. The extension's code bundle is not read on this tier: a PASS means the provenance and the declared surface are clean, never that the JavaScript was inspected.
Open the extension's package.json — it is the manifest inside the .vsix, and the gallery serves it as the Microsoft.VisualStudio.Code.Manifest asset. A main or browser field means the extension executes; a manifest whose only contribution is contributes.themes, contributes.iconThemes or contributes.snippets does not. Then ask the two questions V7's grading depends on: is there a blue verified-domain mark beside the publisher's name on the listing page, and when was the listing first released? Under 90 days and no verified domain is the combination this check escalates on — and the combination V1 and V2 score in their own right.
Is "runs code" a finding against an extension? No. It is what an extension is for: 87 of the 100 most-installed extensions in the 18 September 2026 measurement declare it, and on every one of them V7 is a note that costs nothing. The remaining 13 are themes and snippet packs, which declare no entry point. V7 exists so the verdict states what the extension is — something that runs in the editor's process — rather than to penalise it for being an extension.
When does V7 cost points? Only when the listing is under 90 days old and its publisher has not verified a domain — then it is MEDIUM at 5 points. That shape never stands alone: the same listing fires V1 (HIGH, 15 points) on the unverified publisher, and if it is under 30 days old V2 as well. V7 is the fourth voice in that chord, not a solo. The result is REVIEW with the profile's warn action; V7 has no CRITICAL tier and never moves an extension to BLOCK.
Would V7 have caught the theme extensions with the trojan in a fake PNG? No. ReversingLabs' 19 extensions (10 December 2025) were themes, and a theme declares no entry point — ExecutesCode would not have been set by the theme itself. The payload was an archive named banner.png inside a bundled copy of path-is-absolute in node_modules, which no file list can tell from an image. V7 reads a declaration; what a package actually contains is V12's question, and what the bundle does is the deep scan's.
V8 Proposed API access — what the code reaches for beyond the stable API, the next question once V7 has said it executes · V12 Package contents — what executes inside the package, which is where the 2025 theme campaign actually hid · V1 Publisher verification — the verified-domain signal V7's grading borrows, and the HIGH that always fires beside a MEDIUM V7 · H9 Custom code on load — the Hugging Face analogue: an artefact that runs the author's code when it loads, scored as a surface rather than a verdict.
Add RepoGates to Chrome Pricing
Numbers on this page: the 18 September 2026 measurement of the 100 most-installed extensions on the VS Code Marketplace, run locally through the same code as /v1/vsx/score; campaign facts as published by ReversingLabs and Secure Annex and, for Koi Security's research, as quoted by BleepingComputer and The Hacker News; weights from the product's scoring table.