Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2021-26700 — CVE-2021-26700の概念実証:悪意のあるワークスペースsettings.jsonを介したVSCode npm-script拡張機能のリモートコード実行。詳細な悪用と修復ガイダンス付き。 | Kitploit
ツール/GitHubGitHub/jackadamson/cve-2021-26700
脆弱性分析コード分析エクスプロイトウェブアプリケーション悪用サプライチェーンセキュリティ学習と教育
GitHubjackadamson/cve-2021-26700

CVE-2021-26700

CVE-2021-26700の概念実証:悪意のあるワークスペースsettings.jsonを介したVSCode npm-script拡張機能のリモートコード実行。詳細な悪用と修復ガイダンス付き。

リポジトリを見る
20165年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

NPM VSCode 拡張機能における RCE

2021 年 2 月 10 日に修正: https://github.com/microsoft/vscode-npm-scripts/commit/cdd5e507564e0cc0f60bcccf184822be3fd73e07

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

概要

VSCode 拡張機能 eg2.vscode-npm-script (バージョン 0.3.13 でテスト済み) にはリモートコード実行の脆弱性があり、プロジェクト内の悪意のある .vscode/settings.json によって、package.json というファイルを表示したときにリモートコード実行が引き起こされる可能性があります。

この脆弱性は、マイクロソフトのアクティブなバグ報奨金プログラムの対象ではありませんでしたが、MSRC に報告され、対応されました。

説明

リポジトリ内に悪意のある .vscode/settings.json ファイルがない場合、eg2.vscode-npm-script 拡張機能をインストールした状態で package.json ファイルを表示すると、コマンド npm ls --depth 0 --json が実行されます。

プロジェクトの settings.json の npm.bin キーを、たとえば ./payload.sh に設定すると、package.json を表示したときに、package.json があるディレクトリから ./payload.sh ls --depth 0 --json が代わりに実行されます。

この脆弱性は、ソースコードを安全に読めるという前提を覆すものです。

攻撃例

攻撃者による悪用方法の例は次のとおりです。

  1. 攻撃者は添付の linux-poc のようなリポジトリを公開します
  2. 標的は、VSCode でソースコードを読むためにリポジトリをクローンします
  3. 標的は package.json を表示します
  4. payload.sh が実行されます

修復オプション

悪意のある VSCode ワークスペースの settings.json を緩和する方法として、次の 2 つがあります。

対策 1 - ユーザー設定のみ

ワークスペースごとに設定されることを禁止します。これはすでに VSCode の git.path、terminal.integrated.shell.linux、その他いくつかの設定で使用されています。

一部のユーザーとの互換性を壊す可能性がありますが、前例があります。
参照: https://vscode.readthedocs.io/en/latest/getstarted/settings/#settings-and-security

対策 2 - 確認を求める

この設定がワークスペースで設定されている場合、バイナリを実行する前に設定を確認するようユーザーに求めます。

これは既存の互換性を壊さず、ESLint 拡張機能がバージョン 2.1.7 以降で採用している方法です。

概念実証

Linux

  1. VSCode 拡張機能 eg2.vscode-npm-script の脆弱性のあるバージョン (0.3.13 以前) をインストールします
  2. VSCode で linux-poc ディレクトリをフォルダーとして開きます
  3. VSCode で package.json ファイルをクリックして表示します
  4. 実行を実証するために、/tmp/output.txt ファイルが作成されます

Windows

  1. VSCode 拡張機能 eg2.vscode-npm-script の脆弱性のあるバージョン (0.3.13 以前) をインストールします
  2. VSCode で windows-poc ディレクトリをフォルダーとして開きます
  3. VSCode で package.json ファイルをクリックして表示します
  4. calc.exe が開かれます

注: Windows ではバイナリに相対パスを使用できませんでしたが、これは Windows に精通していないためかもしれません。

ツールをダウンロード