🔍 Contexte

Publié le 4 août 2026 par Ax Sharma et Cody Nash (Manifold Security), cet article de recherche documente la découverte de 77 extensions Open VSX contrefaites identifiées entre le 26 juillet et le 1er août 2026, toutes communicant avec le même domaine nouvellement enregistré mangorbit.com.

🎯 Nature de l’attaque

Chaque extension usurpe le nom, le namespace et la description d’une vraie extension VS Code Marketplace, publiée sous un compte pseudonyme ne possédant pas le namespace d’origine, généralement à la version 0.0.1. Le fichier extension.js légitime est remplacé par un beacon de collecte de données.

📦 Deux types de payloads

Payload A – Beacon léger (58 extensions, ~1,6 à 3,3 KB) :

  • Envoie le hostname, parfois le nom du workspace ou la version de l’éditeur
  • Inclut un identifiant de tracking par package
  • Endpoints : /api/v1/metrics, /api/v1/events ou paramètres GET

Payload B – Reconnaissance complète (19 extensions, ~10 KB) :

  • Déclenché 4 à 5 secondes après activation
  • Collecte : hostname, username OS, nom/version/type de l’éditeur, machine ID, plateforme, architecture, locale, timezone, chemin complet du workspace
  • Lit .git/config : URLs remote origin/upstream (host + org), domaine de l’email de commit
  • Lit .git/HEAD : branche courante, SHA du commit HEAD
  • Énumère jusqu’à 60 extensions installées
  • Récupère le proxy hostname depuis l’environnement
  • Collecte les variables CI : GITHUB_REPOSITORY, CI_PROJECT_PATH, URI Azure DevOps, slug Buildkite, username CircleCI, nom Codespace, URL contexte Gitpod
  • Vérifie si l’extension a été installée via devcontainer.json ou .vscode/extensions.json
  • Lit et enregistre le paramètre d’opt-out télémétrie de l’éditeur, puis envoie quand même

🏗️ Infrastructure

  • Domaine principal : mangorbit.com, enregistré le 15 juillet 2026 (11 jours avant les premières extensions), expire en 2029, registrant masqué
  • Sous-domaines actifs : pulse.mangorbit.com, pulse2.mangorbit.com, api.mangorbit.com, sous-domaines aléatoires sous cb.mangorbit.com
  • Mécanisme de failover DNS : requête TXT sur _beacon.<domain> pour obtenir un endpoint de remplacement en cas de blocage
  • Retry patient : tentatives à ~15 min, ~50 min, ~3h30, puis toutes les 7-8h, pendant 7 jours
  • User-Agent : vscode-ext-metrics/1.0

🎭 Dissimulation par la documentation

Les listings Open VSX incluaient une section « Telemetry » décrivant correctement la plupart des champs collectés, mais mentant sur un point clé : ils affirmaient que les valeurs CI ne quittaient jamais la machine, alors que le code les envoie explicitement. Trois comportements supplémentaires ne sont pas mentionnés dans les listings : la lecture du paramètre d’opt-out, la détection de l’origine de l’installation, et le mécanisme DNS de failover.

🏢 Namespaces usurpés

AMD, Artsy, LEGO Education, Hyperledger, Azure, IOTA, Salesforce OSS, une agence fédérale US (ssagov), marketplace.visualstudio

📅 Statut

Les 77 packages ont été retirés d’Open VSX le 3 août 2026, mais l’infrastructure mangorbit.com reste active.

📰 Type d’article

Publication de recherche technique avec indicateurs de compromission, visant à documenter une campagne de supply chain active ciblant les développeurs via des extensions d’éditeur de code contrefaites.

🧠 TTPs et IOCs détectés

TTP

  • T1195.001 — Supply Chain Compromise: Compromise Software Dependencies and Development Tools (Initial Access)
  • T1608.001 — Stage Capabilities: Upload Malware (Resource Development)
  • T1071.001 — Application Layer Protocol: Web Protocols (Command and Control)
  • T1568.001 — Dynamic Resolution: Fast Flux DNS (Command and Control)
  • T1082 — System Information Discovery (Discovery)
  • T1083 — File and Directory Discovery (Discovery)
  • T1552.001 — Unsecured Credentials: Credentials In Files (Credential Access)
  • T1119 — Automated Collection (Collection)
  • T1020 — Automated Exfiltration (Exfiltration)
  • T1036.005 — Masquerading: Match Legitimate Name or Location (Defense Evasion)

IOC

⚠️ À propos de ces IOC — ils sont extraits automatiquement de l’article original le 8 août 2026 et n’ont pas fait l’objet d’une vérification externe. Un indicateur peut avoir été réattribué depuis : une IP de C2 peut redevenir un service légitime, un domaine sinkholé peut changer de propriétaire. Aucune garantie d’exactitude ni d’actualité — contrôlez leur validité avant tout usage opérationnel, en particulier avant de les injecter dans une blocklist ou un SIEM.

Malware / Outils

  • Open VSX evil twin beacon (payload A) (other)
  • Open VSX evil twin recon payload (payload B) (other)

🟢 Indice de vérification factuelle : 70/100 (haute)

  • ⬜ manifold.security — source non référencée (0pts)
  • ✅ 20552 chars — texte complet (fulltext extrait) (15pts)
  • ✅ 24 IOCs dont des hashes (15pts)
  • ✅ 3/9 IOCs confirmés (MalwareBazaar, ThreatFox, URLhaus, VirusTotal) (15pts)
  • ✅ 10 TTPs MITRE identifiées (15pts)
  • ✅ date extraite du HTML source (10pts)
  • ⬜ aucun acteur de menace nommé (0pts)
  • ⬜ pas de CVE à vérifier (0pts)

IOCs confirmés externellement :

  • mangorbit.com (domain) → VT (4/91 détections)
  • pulse.mangorbit.com (domain) → VT (5/91 détections)
  • pulse2.mangorbit.com (domain) → VT (8/91 détections)

🔗 Source originale : https://www.manifold.security/blog/open-vsx-evil-twin-extensions