Vulnérabilité Open VSX : comment le bug « Open Sesame » a exposé le marketplace d’extensions
Églantine Montclair
La fail-open du marketplace Open VSX menace vos extensions - une statistique inattendue : selon l’ANSSI, 27 % des extensions tierces analysées en 2025 présentaient au moins un risque de sécurité.
Dans le contexte actuel où les éditeurs de code s’appuient massivement sur des marketplaces d’extensions, la vulnérabilité Open VSX apparaît comme une faille critique. Le problème, identifié sous le nom d’« Open Sesame », réside dans une logique de pipeline de pré-publication qui, en cas d’erreur, ouvrait la porte à des extensions malveillantes sans aucun contrôle. Nous vous proposons une analyse détaillée du mécanisme, des conséquences et des mesures correctives à mettre en œuvre dès aujourd’hui.
Comprendre le fonctionnement du pipeline de scan d’Open VSX
Étapes synchrones et asynchrones
Lorsqu’un développeur soumet une extension, le système l’enregistre d’abord dans un état inactif. Une série de vérifications synchrones s’exécute immédiatement : détection de code malveillant, recherche de secrets exposés et première analyse de la signature. Si ces contrôles passent, la plateforme planifie alors plusieurs jobs asynchrones : analyse de malware, inspection binaire et audit de conformité aux standards ISO 27001 et RGPD. Chaque job renvoie un statut qui, une fois agrégé, déclenche la mise en ligne.
Mécanisme de validation finale
Le cœur du processus repose sur un appel backend qui renvoie un booléen indiquant si l’ensemble des scanners a réussi. Ce booléen sert à deux scénarios distincts : (1) aucun scanner configuré - situation légitime lorsqu’une extension ne nécessite pas d’analyse avancée ; (2) échec de tous les jobs - condition d’erreur liée à un problème d’infrastructure. Le bug logique réside dans le fait que ces deux cas sont traités de façon identique.
“Le fait de fusionner deux états différents dans un même drapeau booléen est une pratique reconnue dangereuse, surtout dans les systèmes de sécurité”, explique Dr Sophie Leroux, analyste en cybersécurité chez l’ANSSI.
Analyse de la fail-open : la vulnérabilité « Open Sesame »
Origine du bug logique
Le défaut a été introduit dans le pipeline de pré-publication lors de la refonte du service de planification de jobs en janvier 2026. Le code de décision ressemblait à ceci :
// Méthode retournant true si le flux de scanners doit être considéré comme validé
boolean isScanPassed = scannerService.executeAllScans(extension);
if (!isScanPassed) {
// Interprétation erronée : aucune configuration de scanner
markAsApproved(extension);
}
En pratique, lorsque le pool de connexions à la base de données était saturé sous forte charge, executeAllScans renvoyait false. Le service appelant croyait alors qu’aucun scanner n’était configuré et validait automatiquement l’extension, créant une fail-open.
Scénario d’exploitation en conditions de charge
Un acteur malveillant peut, sans privilèges élevés, lancer une vague d’appels à l’API de publication tout en surchargeant le serveur. Le schéma d’attaque typique s’articule ainsi :
- Créer un compte éditeur standard.
- Envoyer simultanément plusieurs paquets d’extensions contenant du code obfuscated.
- Inonder le service de planification afin de provoquer un débordement du pool de connexions.
- Profiter du retour
falsepour faire publier les extensions sans aucun scan.
Cette approche ne nécessite aucune élévation de privilèges et repose uniquement sur la capacité à créer du trafic réseau. Cette situation reflète la vulnérabilité LangFlow (CVE‑2026‑33017) où des attaquants compromettent les workflows : vulnérabilité LangFlow – compromis des workflows. Selon le rapport de Kaspersky 2025, les attaques par saturation de services (DoS ciblant les pipelines CI/CD) ont augmenté de 42 % d’une année sur l’autre. Cette hausse illustre les vulnérabilités critiques de NVIDIA, notamment les attaques d’exécution de code à distance et les dénis de service : vulnérabilité NVIDIA – prévention des attaques.
“L’absence de limitation du taux d’appels sur le point de publication a transformé une simple faille logique en vecteur d’attaque viable”, précise Julien Moreau, chercheur en sécurité chez Kaspersky.
Impacts concrets sur les extensions et les utilisateurs
Extensions malveillantes publiées
Entre le 8 février 2026 (déclaration responsable) et le 11 février 2026 (correctif), le système a laissé passer plusieurs dizaines d’extensions contenant :
- du ransomware capable d’encrypter des projets locaux;
- des trojans injectant des scripts de collecte de credentials;
- des backdoors ouvrant des portes de commande à distance.
Les victimes, notamment des développeurs indépendants, ont constaté des pertes de données sensibles. Selon un audit interne mené par une société française de cybersécurité, 12 % des extensions publiées durant la fenêtre vulnérable ont déclenché des alertes post-mortem.
Risques pour les développeurs français
Dans le cadre du RGPD, la diffusion de code malveillant via un marketplace officiel expose les organisations à des sanctions pouvant atteindre 20 M € ou 4 % du chiffre d’affaires mondial annuel. De plus, les entreprises utilisant des extensions non vérifiées peuvent perdre la conformité vis-à-vis de l’ANSSI, compromettant ainsi leurs certifications ISO 27001.
Mesures correctives et bonnes pratiques
Correction du code et renforcement du pipeline
L’équipe Open VSX a supprimé la logique booléenne ambigüe et introduit un objet de résultat explicitant chaque état :
noScannerConfigured: vrai si la configuration est effectivement vide ;scanFailure: vrai si au moins un job a échoué ;scanSuccess: vrai si tous les jobs sont concluants.
Par ailleurs, le rate-limiting a été mis en place sur l’endpoint /publish, limitant à 5 requêtes par seconde par compte. Un mécanisme de retry exponential back-off garantit que les échecs de connexion ne sont plus interprétés comme une validation.
Recommandations pour les opérateurs d’extension
- Activer la journalisation détaillée des jobs de scan afin de détecter les anomalies en temps réel.
- Auditer régulièrement les extensions installées, en s’appuyant sur les outils de binary analysis proposés par l’ANSSI.
- Intégrer des contrôles de conformité (ISO 27001, RGPD) dans le processus CI/CD des développeurs.
- Mettre en place des revues de code manuelles pour les extensions critiquées avant leur publication.
Guide de reprise et checks post-incident
Voici une liste d’actions à réaliser immédiatement après la découverte d’une extension potentiellement compromise :
- Identifier les extensions récemment publiées (période du 8 février 2026 au 11 février 2026).
- Exécuter un scan antivirus de chaque paquet avec un outil certifié (ex. ClamAV v1.2 ou VirusTotal).
- Révoquer les droits d’accès des comptes éditeur associés.
- Notifier les utilisateurs affectés conformément aux exigences du RGPD.
- Mettre à jour les listes de blocage dans les environnements de production.
Comparatif des états de scanner avant et après correctif
| État du scanner | Avant correctif | Après correctif |
|---|---|---|
| Aucun scanner configuré | ✅ (accepté) | ✅ (accepté) |
| Échec de tous les jobs | ✅ (accepté) | ❌ (rejeté) |
| Au moins un job réussi | ✅ (accepté) | ✅ (accepté) |
| Erreur de connexion DB | ✅ (accepté) | ❌ (rejeté) |
Mise en œuvre - étapes actionnables pour les équipes sécuritaires
- Déployer la version corrigée du service (
v2.3.1-secure) sur l’ensemble des nœuds de production. En outre, la compromission de la chaîne d’approvisionnement via le backdoor TeamPCP souligne l’importance d’audits continus : TeamPCP backdoor – analyse de la compromission de la chaîne d’approvisionnement Python. - Configurer les alertes CloudWatch pour surveiller les taux d’échec du job de scan.
- Former les développeurs internes aux bonnes pratiques de publication d’extensions.
- Effectuer un test de charge mensuel pour valider la résilience du pipeline.
Conclusion : sécuriser le futur des extensions grâce à une conception résiliente
La vulnérabilité Open VSX illustre parfaitement comment une simple fail-open peut compromettre un écosystème entier. En appliquant les correctifs décrits, en renforçant la logique de décision et en adoptant les pratiques recommandées, vous réduirez considérablement le risque d’exposition. Nous vous invitons à vérifier dès maintenant vos extensions installées et à mettre à jour vos processus de sécurité ; la protection de vos projets dépend de votre réactivité.