Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2021-26700 — RCE nell'estensione NPM per VSCode | Kitploit
Strumenti/GitHubGitHub/jackadamson/cve-2021-26700
Analisi delle VulnerabilitàAnalisi del CodiceExploitSfruttamento di Applicazioni WebSicurezza della Supply ChainApprendimento e Formazione
GitHubjackadamson/cve-2021-26700

CVE-2021-26700

RCE nell'estensione NPM per VSCode

Vedi Repository
205 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

RCE nell'estensione NPM per VSCode

Risolto il 10 febbraio 2021 in https://github.com/microsoft/vscode-npm-scripts/commit/cdd5e507564e0cc0f60bcccf184822be3fd73e07

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

Riepilogo

Una vulnerabilità di esecuzione remota di codice nell'estensione VSCode eg2.vscode-npm-script (testata sulla versione 0.3.13) fa sì che un file .vscode/settings.json malevolo in un progetto possa causare l'esecuzione remota di codice quando viene visualizzato un file chiamato package.json.

Questa vulnerabilità non rientrava in nessun programma attivo di bug bounty Microsoft, ma è stata segnalata e gestita da MSRC.

Descrizione

Senza un file .vscode/settings.json malevolo in un repository, visualizzando un file package.json, con l'estensione eg2.vscode-npm-script installata, verrà eseguito il comando npm ls --depth 0 --json.

Impostando la chiave npm.bin in un settings.json del progetto, ad esempio a ./payload.sh, visualizzando package.json verrà invece eseguito ./payload.sh ls --depth 0 --json dalla directory che contiene package.json.

Questa vulnerabilità infrange l'assunzione che il codice sorgente possa essere letto in sicurezza.

Esempio di attacco

Un esempio di come questo potrebbe essere usato da un attaccante è:

  1. L'attaccante pubblica un repository come il linux-poc allegato
  2. Il bersaglio clona il repository per leggere il codice sorgente in VSCode
  3. Il bersaglio visualizza package.json
  4. payload.sh viene eseguito

Opzioni di mitigazione

Ho visto due modi per mitigare un settings.json malevolo dell'area di lavoro di VSCode

Mitigazione 1 - Impostazioni solo utente

Vietare che le impostazioni vengano impostate per area di lavoro. Questo è già usato da VSCode per git.path, terminal.integrated.shell.linux e alcune altre impostazioni.

Questo potrebbe rompere la compatibilità per alcuni utenti, ma ha un precedente.
Riferimento: https://vscode.readthedocs.io/en/latest/getstarted/settings/#settings-and-security

Mitigazione 2 - Richiedi conferma

Se questa impostazione è impostata in un'area di lavoro, chiedere all'utente di confermare l'impostazione prima di eseguire il binario.
Questo non romperà la compatibilità esistente ed è la strada intrapresa dall'estensione ESLint a partire dalla versione 2.1.7.

Prova di concetto

Linux

  1. Installa la versione vulnerabile (0.3.13 o precedente) dell'estensione VSCode eg2.vscode-npm-script
  2. Apri la directory linux-poc come cartella in VSCode
  3. In VSCode fai clic sul file package.json per visualizzarlo
  4. Il file /tmp/output.txt verrà creato per dimostrare l'esecuzione

Windows

  1. Installa la versione vulnerabile (0.3.13 o precedente) dell'estensione VSCode eg2.vscode-npm-script
  2. Apri la directory windows-poc come cartella in VSCode
  3. In VSCode fai clic sul file package.json per visualizzarlo
  4. calc.exe verrà aperto

Nota: non sono riuscito a usare un percorso relativo per il binario in Windows, tuttavia ciò potrebbe essere dovuto alla mia scarsa familiarità con Windows

Scarica lo strumento