3,800 GitHub Repos Breached via VSCode Extension: What Every Developer Should Know

Karify98 & Amy 🌸·
Cover Image for 3,800 GitHub Repos Breached via VSCode Extension: What Every Developer Should Know

The Enemy Is Inside Your VSCode

Last week, GitHub confirmed a serious security incident: approximately 3,800 internal repositories were breached after an employee installed a trojanized VSCode extension. The hacker group TeamPCP then listed the stolen data on a cybercrime forum with a minimum asking price of $50,000.

The alarming part isn't the scale β€” it's the method. No zero-day exploits, no sophisticated phishing campaigns. Just one employee clicking "Install" on the marketplace.

VSCode Extensions: A Gold Mine for Hackers

VSCode is the most popular code editor in the world, with over 180 million developers using it (according to GitHub, 2026). Its marketplace hosts hundreds of thousands of extensions β€” themes, formatters, AI coding assistants. But this openness creates a massive attack surface.

The core problem: the VSCode Marketplace lacks the code review rigor of App Store or Google Play. Anyone can publish an extension and have millions of installations before anyone inspects the code.

A Pattern of VSCode Extension Incidents

The frequency of malicious extension discoveries has been accelerating:

  • February 2025: "Material Theme – Free" and "Material Theme Icons – Free" removed after researchers found obfuscated JavaScript. Combined: 9 million installs (BleepingComputer, 2025).
  • January 2026: Two AI coding assistant extensions β€” "ChatGPT – δΈ­ζ–‡η‰ˆ" (1.34 million installs) and "ChatMoss" (150,000 installs) β€” caught exfiltrating developer data to servers in China (Koi Security, 2026).
  • January 2026: A ransomware-capable extension appeared on the marketplace. WhiteCobra flooded it with 24 crypto-stealing extensions (BleepingComputer, 2026).
  • May 2026: GitHub confirmed 3,800 internal repos exposed through a malicious VSCode extension. TeamPCP claimed responsibility (BleepingComputer, 2026).

How Malicious Extensions Steal Data

Three primary exfiltration mechanisms have been observed across these incidents:

1. Real-time file monitoring

When a developer opens any file in VSCode, the extension reads the entire contents, encodes them in Base64, and transmits to the attacker's servers. No user interaction required β€” opening the file is enough.

According to Koi Security, the "ChatGPT – δΈ­ζ–‡η‰ˆ" and "ChatMoss" extensions used this mechanism. Any changes to the file were also captured and exfiltrated.

2. Bulk workspace scanning

Some extensions include server-controlled file harvesting commands. Each sweep steals up to 50 files from the workspace β€” including source code, configuration files, and .env files containing API keys and credentials.

3. Analytics SDK tracking

Extensions embed zero-pixel iframes in webviews, loading commercial analytics SDKs (Zhuge.io, GrowingIO, TalkingData, Baidu Analytics). The goal: track user behavior, build identity profiles, fingerprint devices, and monitor activity inside the editor.

This is why even theme extensions can be dangerous. Themes should be static JSON files, but many contain executable JavaScript.

Why the Marketplace Can't Stop This

The VSCode Marketplace operates on a "publish first, review later" model β€” the opposite of App Store. A developer can publish a new extension and reach millions of installations before anyone inspects the code.

Microsoft has taken some steps:

  • Reporting mechanism for suspicious extensions
  • Automatic removal when violations are detected
  • In-editor warnings when extensions are pulled

But these measures are reactive, not preventive. The developer remains the last line of defense.

How to Protect Yourself

Check before installing

  • Verify the publisher: Does the publisher have multiple reputable extensions, a website, a GitHub profile? Or is it a brand-new account with no history?
  • Read the source code: Is the extension open source? Check the GitHub repository. Look for suspicious functions: fetch, http.request, XMLHttpRequest, connections to unknown servers.
  • Review permissions: What permissions does the extension request? If a theme extension requests network access, that's a red flag.
  • Check ratings and reviews: Does the extension have genuine positive reviews from real users? Or just suspicious 5-star ratings?

Use scanning tools

  • ExtensionTotal: A VSCode extension scanner developed by researchers Amit Assaraf and Itay Kruk. Detects obfuscated code, suspicious network connections, and anomalous behavior.
  • Socket.dev: Scans supply chain dependencies for malicious packages.

Isolate your work environments

  • Don't install unnecessary extensions on production environments
  • Use VSCode Profiles to separate extensions by project
  • Don't store credentials or API keys in workspaces with untrusted extensions
  • Use Secret Manager or vault tools instead of .env files

Audit your current extensions

Spend 15 minutes reviewing your installed extensions:

# List all installed extensions
code --list-extensions

# Check which extensions have network permissions
# Inspect package.json in ~/.vscode/extensions/

Each extension has a folder in ~/.vscode/extensions/. Check package.json for required permissions. Look for activationEvents and contributes β€” if an extension doesn't need network access but has outbound connections, that's suspicious.

Lessons for Developers

The GitHub incident isn't the first, and it won't be the last. Supply chain attacks through extensions are becoming a primary attack vector targeting developers.

Three key takeaways:

First, a reputable marketplace doesn't guarantee safe extensions. VSCode Marketplace, npm, and PyPI all operate on open models. Developers must take responsibility for vetting what they install.

Second, AI coding assistant extensions are prime targets. Developers typically grant broad permissions to AI extensions β€” file access, terminal access, network connections. Attackers know this.

Third, security is a habit, not an event. Taking a few minutes to check extensions before installing, performing periodic audits, isolating environments β€” small practices that can prevent major breaches.


References: