Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2021-26700 — Preuve de concept pour CVE-2021-26700 : exécution de code à distance dans l'extension VSCode npm-script via un settings.json d'espace de travail malveillant, avec des conseils détaillés d'exploitation et de remédiation. | Kitploit
Outils/GitHubGitHub/jackadamson/cve-2021-26700
Analyse des VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications WebSécurité de la Chaîne LogistiqueApprentissage et Éducation
GitHubjackadamson/cve-2021-26700

CVE-2021-26700

Preuve de concept pour CVE-2021-26700 : exécution de code à distance dans l'extension VSCode npm-script via un settings.json d'espace de travail malveillant, avec des conseils détaillés d'exploitation et de remédiation.

Voir le dépôt
2016il y a 5 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

RCE dans l'extension NPM pour VSCode

Corrigé le 10 février 2021 dans https://github.com/microsoft/vscode-npm-scripts/commit/cdd5e507564e0cc0f60bcccf184822be3fd73e07

https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-26700

Résumé

La vulnérabilité d'exécution de code à distance dans l'extension VSCode eg2.vscode-npm-script (testée sur la version 0.3.13) signifie qu'un fichier .vscode/settings.json malveillant dans un projet peut provoquer une exécution de code à distance lorsqu'un fichier nommé package.json est consulté.

Cette vulnérabilité n'était couverte par aucun programme actif de bug bounty de Microsoft, mais a été signalée et traitée par le MSRC.

Description

Sans fichier .vscode/settings.json malveillant dans un dépôt, lors de la consultation d'un fichier package.json, avec l'extension installée, la commande sera exécutée.

eg2.vscode-npm-script
npm ls --depth 0 --json

En définissant la clé npm.bin dans un fichier settings.json d'un projet, par exemple à ./payload.sh, la consultation du package.json exécutera à la place ./payload.sh ls --depth 0 --json depuis le répertoire contenant le package.json.

Cette vulnérabilité brise l'hypothèse selon laquelle le code source peut être consulté en toute sécurité.

Exemple d'attaque

  1. L'attaquant publie un dépôt tel que linux-poc attaché
  2. La cible clone le dépôt pour lire le code source dans VSCode
  3. La cible consulte package.json
  4. payload.sh est exécuté

Options de correction

J'ai vu deux façons de limiter les fichiers settings.json d'espace de travail VSCode malveillants

Atténuation 1 - Paramètres utilisateur uniquement

Interdire que ces paramètres soient définis par espace de travail. C'est déjà utilisé par VSCode pour git.path, terminal.integrated.shell.linux et quelques autres paramètres.

Cela pourrait rompre la compatibilité pour certains utilisateurs, mais a un précédent.
Référence: https://vscode.readthedocs.io/en/latest/getstarted/settings/#settings-and-security

Atténuation 2 - Demander confirmation

Si ce paramètre est défini dans un espace de travail, demander à l'utilisateur de confirmer le paramètre avant d'exécuter le binaire.
Cela ne rompt pas la compatibilité existante, et c'est la voie prise par l'extension ESLint à partir de la version 2.1.7.

Preuve de concept

Linux

  1. Installer la version vulnérable (0.3.13 ou antérieure) de l'extension VSCode eg2.vscode-npm-script
  2. Ouvrir le répertoire linux-poc comme dossier dans VSCode
  3. Dans VSCode, cliquer sur le fichier package.json pour le consulter
  4. Le fichier /tmp/output.txt sera créé pour démontrer l'exécution

Windows

  1. Installer la version vulnérable (0.3.13 ou antérieure) de l'extension VSCode eg2.vscode-npm-script
  2. Ouvrir le répertoire windows-poc comme dossier dans VSCode
  3. Dans VSCode, cliquer sur le fichier package.json pour le consulter
  4. calc.exe sera ouvert

Note : Je n'ai pas réussi à utiliser un chemin relatif pour le binaire sous Windows, mais cela peut être dû à mon manque de familiarité avec Windows.

Télécharger l’outil