Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Ferramentas/GitHubGitHub/jackadamson/cve-2021-26700
Análise de VulnerabilidadesAnálise de CódigoExploraçãoExploração de Aplicações WebSegurança da Cadeia de SuprimentosAprendizado e Educação
GitHubjackadamson/cve-2021-26700

CVE-2021-26700

Prova de conceito para CVE-2021-26700: execução remota de código na extensão npm-script do VSCode por meio de um settings.json malicioso no workspace, com orientação detalhada de exploração e remediação.

Ver Repositório
2016há 5 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

RCE na Extensão NPM do VSCode

Corrigido em 10 de fevereiro de 2021 em https://github.com/microsoft/vscode-npm-scripts/commit/cdd5e507564e0cc0f60bcccf184822be3fd73e07

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

Resumo

Vulnerabilidade de execução remota de código na extensão do VSCode eg2.vscode-npm-script (testada na versão 0.3.13) significa que um .vscode/settings.json malicioso em um projeto pode causar execução remota de código quando um arquivo chamado package.json é visualizado.

Esta vulnerabilidade não se enquadrava em nenhum programa ativo de recompensa por bugs da Microsoft, mas foi reportada e tratada pela MSRC.

Descrição

Sem um arquivo .vscode/settings.json malicioso em um repositório, ao visualizar um arquivo package.json, com a extensão instalada, o comando será executado.

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

Ao definir a chave npm.bin no settings.json de um projeto, por exemplo, para ./payload.sh, visualizar o package.json executará ./payload.sh ls --depth 0 --json a partir do diretório que contém o package.json.

Esta vulnerabilidade quebra a suposição de que o código-fonte pode ser lido com segurança.

Exemplo de Ataque

Um exemplo de como isso poderia ser usado por um atacante é:

  1. O atacante publica um repositório como o linux-poc anexado
  2. O alvo clona o repositório para ler o código-fonte no VSCode
  3. O alvo visualiza package.json
  4. payload.sh é executado

Opções de Remediação

Vi duas formas de mitigar settings.json malicioso do Workspace do VSCode

Mitigação 1 - Configurações Apenas para o Usuário

Proibir que as configurações sejam definidas por workspace. Isso já é usado pelo VSCode para git.path, terminal.integrated.shell.linux e algumas outras configurações.

Isso pode quebrar a compatibilidade para alguns usuários, mas tem precedentes.
Referência: https://vscode.readthedocs.io/en/latest/getstarted/settings/#settings-and-security

Mitigação 2 - Solicitar Confirmação

Se essa configuração estiver definida em um workspace, solicite ao usuário que confirme a configuração antes de executar o binário.
Isso não quebrará a compatibilidade existente e é o caminho adotado pela Extensão ESLint a partir da versão 2.1.7.

Prova de Conceito

Linux

  1. Instale a versão vulnerável (0.3.13 ou anterior) da extensão eg2.vscode-npm-script do VSCode
  2. Abra o diretório linux-poc como uma pasta no VSCode
  3. No VSCode, clique no arquivo package.json para visualizá-lo
  4. O arquivo /tmp/output.txt será criado para demonstrar a execução

Windows

  1. Instale a versão vulnerável (0.3.13 ou anterior) da extensão eg2.vscode-npm-script do VSCode
  2. Abra o diretório windows-poc como uma pasta no VSCode
  3. No VSCode, clique no arquivo package.json para visualizá-lo
  4. calc.exe será aberto

Nota: Não consegui usar um caminho relativo para o binário no Windows, no entanto isso pode ser devido à minha falta de familiaridade com o Windows

Baixar ferramenta