Zwei scheinbar legitime AI-Coding-Extensions für Visual Studio Code wurden als Spionage-Tool identifiziert: Sie funktionieren wie beworben, senden aber geöffnete Dateien und Code-Änderungen im Hintergrund an externe Server. Für Unternehmen ist das kritisch, weil Entwickler-Workspaces oft Secrets, interne Repos und Produkt-Quellcode enthalten.
Die Kampagne wird als MaliciousCorgi beschrieben und betrifft u. a. diese Extension-IDs: whensunset.chatgpt-china und zhukunpeng.chat-moss.
TL;DR – die wichtigsten Schritte
- 1
Betroffenheit prüfen
Installierte VS-Code-Extensions inventarisieren.
- 2
Sofortmaßnahmen
Verdächtige Extensions deinstallieren, Secrets rotieren, Logs prüfen.
- 3
Containment
Egress/DNS zu verdächtigen Zielen blocken oder monitoren, DLP/Proxy-Rules ergänzen.
- 4
Prävention
Extension-Allowlist und Freigabeprozess (Enterprise-Policy oder Private Marketplace).
Ausgangslage
Developer-Tools sind Teil der Supply Chain: Eine Extension hat Zugriff auf Arbeitsbereiche, Dateien und teils indirekt auch auf Tokens (z. B. in lokalen Configs). Der VS-Code Marketplace hat Schutzmechanismen, aber diese ersetzen keine Unternehmens-Policies.
Bin ich betroffen?
Prüfen Sie auf Entwickler-Maschinen (oder via Endpoint-Management), ob eine der folgenden Extensions installiert ist:
Betroffene Extensions
| Name (Marketplace) | Extension ID | Risiko |
|---|---|---|
| ChatGPT - 中文版 | whensunset.chatgpt-china | Exfiltration geöffneter Dateien/Edits |
| ChatGPT - ChatMoss(CodeMoss) | zhukunpeng.chat-moss | Exfiltration + Remote-Trigger für Workspace-Dateien |
Sofortmaßnahmen (heute)
Sofortmaßnahmen
- 1
Deinstallieren & VS Code neu starten
Entfernen Sie die Extensions und prüfen Sie, ob weitere „AI“-Forks vom gleichen Publisher installiert sind.
- 2
Secrets rotieren
API Keys, PATs, Cloud-Creds, Signing Keys – insbesondere, wenn sie jemals im Repo oder Workspace sichtbar waren (auch in .env, CI-Files, IaC).
- 3
Proxy/DNS/EDR prüfen
Suchen Sie nach Auffälligkeiten im Egress (neue Domains, ungewöhnliche Upload-Spikes aus Developer-Netzen).
- 4
Scope klären
Welche Repos und Verzeichnisse wurden geöffnet? Welche Branches/PRs enthalten sensitive Informationen?
Quick Check per CLI (PowerShell, Windows)
Ein One-Liner für die schnelle Selbstprüfung in der PowerShell. Wird eine Zeile ausgegeben, ist die entsprechende Extension installiert.
code --list-extensions | ? { $_ -in "whensunset.chatgpt-china","zhukunpeng.chat-moss" } Intune-ready Detection & Remediation Script
Für IT-Administratoren: Vollständiges PowerShell-Script für die Microsoft-Intune-Verteilung. Es prüft automatisiert, ob bekannte MaliciousCorgi-VS-Code-Extensions installiert sind, und kann optional automatisch deinstallieren. Das Script ist für Intune Proactive Remediations oder Detection Scripts optimiert.
<#
MaliciousCorgi – VS Code Extension Detection & Remediation (Intune-ready)
Exit-Codes (für Intune Detection):
0 = nicht gefunden (Compliant)
1 = gefunden (Non-Compliant, betroffen)
2 = VS Code CLI fehlt (Not Applicable)
Für Intune Proactive Remediations:
Detection Script: Prüft nur (kein -Uninstall)
Remediation Script: Führt automatische Deinstallation durch (-Uninstall)
Verwendung in Intune:
- Detection: Script ohne Parameter ausführen
- Remediation: Script mit -Uninstall Parameter ausführen
#>
[CmdletBinding()]
param(
[switch]$Uninstall,
[string]$LogPath = "$env:TEMP\MaliciousCorgi-Check.log"
)
$Ext1 = "whensunset.chatgpt-china"
$Ext2 = "zhukunpeng.chat-moss"
$Targets = @($Ext1, $Ext2)
function Write-Log {
param($Level, $Message)
$Timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
$LogEntry = "[$Timestamp] [$Level] $Message"
# Logging für Intune (kann in Intune-Logs eingesehen werden)
Add-Content -Path $LogPath -Value $LogEntry -ErrorAction SilentlyContinue
# Console-Output für manuelle Ausführung
switch ($Level) {
"INFO" { Write-Host "[INFO] $Message" }
"OK" { Write-Host "[OK] $Message" }
"ALERT" { Write-Host "[ALERT] $Message" }
"ERROR" { Write-Host "[ERROR] $Message" }
default { Write-Host "[INFO] $Message" }
}
}
# Prüfen, ob VS Code CLI verfügbar ist
if (-not (Get-Command code -ErrorAction SilentlyContinue)) {
Write-Log "ERROR" "VS Code CLI ('code') nicht gefunden. Script nicht anwendbar."
exit 2
}
Write-Log "INFO" "Starte MaliciousCorgi Extension Check..."
$Installed = code --list-extensions 2>$null
if ($null -eq $Installed) {
Write-Log "ERROR" "Konnte VS Code Extensions nicht auflisten."
exit 2
}
$Found = @()
foreach ($Ext in $Targets) {
if ($Installed -contains $Ext) {
Write-Log "ALERT" "Gefunden: $Ext"
$Found += $Ext
} else {
Write-Log "OK" "Nicht gefunden: $Ext"
}
}
if ($Found.Count -gt 0) {
Write-Log "ALERT" "Betroffenheit bestätigt: $($Found.Count) Extension(s) gefunden"
Write-Log "INFO" "Empfohlene Sofortmaßnahmen: Secrets rotieren, Egress-Logs prüfen, Scope klären"
if ($Uninstall) {
Write-Log "INFO" "Starte automatische Deinstallation..."
foreach ($Ext in $Found) {
try {
code --uninstall-extension $Ext 2>&1 | Out-Null
Write-Log "OK" "Deinstalliert: $Ext"
} catch {
Write-Log "ERROR" "Fehler beim Deinstallieren von $Ext : $_"
}
}
Write-Log "INFO" "Deinstallation abgeschlossen. VS Code sollte neu gestartet werden."
}
exit 1
}
Write-Log "INFO" "Keine der bekannten MaliciousCorgi-Extensions installiert. System ist compliant."
exit 0 Prävention: so härten Sie VS Code im Unternehmen
Für Unternehmen ist das Ziel nicht „keine Extensions”, sondern kontrollierte Extensions: Allowlist statt Wildwuchs. Microsoft unterstützt zentrale Policies und Private-Marketplace- bzw. Rehosting-Modelle für geprüfte VSIX-Pakete.
Kontrollen für VS-Code-Extensions
| Kontrolle | Empfehlung (pragmatisch) | Wirkung |
|---|---|---|
| Extension-Allowlist | Nur definierte Publisher/Extensions erlauben, alles andere blocken | Reduziert Marketplace-Risiko massiv |
| Private Marketplace / Rehosting | Öffentliche Extensions intern spiegeln und prüfen (VSIX) | Bessere Kontrolle über Updates/Versionen |
| Workspace Trust | Unbekannte Workspaces nur im eingeschränkten Modus | Weniger Risiko durch fremden Code |
Warum das (auch) Build-Systeme betrifft: PackageGate
Parallel zeigt die Diskussion um PackageGate, dass selbst etablierte Schutzrezepte nicht immer die erwartete Wirkung entfalten. Für JS-Stacks heißt das: Policies, Scanning und kontrollierte Installationspfade kombinieren.
Beispiel: Für pnpm wurde ein Bypass als CVE-2025-69264 dokumentiert; betroffen sind Versionen 10.0.0 bis 10.25 (laut Advisory), Fix via Update.
FAQ
Häufige Fragen aus der Praxis
Bin ich betroffen, wenn ich VS Code nutze?
Muss ich von Datenabfluss ausgehen?
Welche Sofortmaßnahmen sind sinnvoll?
Reicht „Marketplace schützt uns“ als Argument?
Wie reduziere ich das Risiko langfristig?
Quellen
- The Hacker News: Malicious VS Code AI Extensions with 1.5 Million Installs Steal Developer Source CodeThe Hacker News, 26.01.2026
- Koi Security: MaliciousCorgi – AI Extensions leaking code from 1.5M developersKoi Security Research, 22.01.2026
- Microsoft VS Code Docs: Extension runtime securityMicrosoft VS Code Docs, aktualisiert 08.01.2026
- Microsoft VS Code Docs: Manage extensions in enterprise environmentsMicrosoft VS Code Docs, aktualisiert 08.01.2026
- GitHub Advisory: pnpm v10+ Git Dependency Script Execution Bypass (CVE-2025-69264)GitHub Advisory Database, 07.01.2026
- NVD: CVE-2025-69264 (pnpm 10.0.0–10.25)NIST NVD, 07.01.2026
- Koi Security: PackageGate – 6 Zero-Days in JS Package Managers But NPM Won’t ActKoi Security Research, 26.01.2026