ITセキュリティサービスのコンサルティング会社であるShielderは9月24日(現地時間)、「Shielder - Remote Command Execution in Visual Studio Code Remote Development Extension 1.50」において、Visual Studio Code(以下、VS Code)向けの拡張機能「Remote Development Extension 1.50」で任意のコマンド実行の脆弱性に関する詳細情報を公開した。

2020年8月に同社が発見したこの脆弱性は、悪用されるとリモートの攻撃者によって対象のデバイス上で任意のコマンドを実行される危険性があるというもので、Microsoftに報告された後、2021年2月11日に修正版がリリースされている。

VS CodeのRemote Development Extensionは、ローカルのPCから、リモートのサーバやコンテナ、あるいはWSL(Windows Subsystem for Linux)を開発環境として使用できるもの。開発者は、対象の環境があたかもローカルにあるのと変わらない感覚で開発を行うことができる。ローカルマシンの構成に影響を与えないで開発用の環境をセットアップできること、開発の段階から本番に近い環境を使用できることなどのメリットがある。

  • Visual Studio Code Remote Development Extension

    Visual Studio Code Remote Development Extension

Shielderによって報告された脆弱性は、このRemote Development Extensionにおいて、sshコマンドの引数として渡されるホストフィールドのサニタイジング(記号や特殊文字などを無害化する処理)が失敗するというもの。この問題を悪用すると、ProxyCommandオプションを挿入して任意のコマンドが実行できる可能性があるとのこと。

この脆弱性は「CVE-2020-17148」として追跡されており、報告を受けたMicrosoftでは次のセキュリティアドバイザリを公開している。

前述の通り、Microsoftからはすでに修正版がリリースされており、バージョン1.51以降にアップデートすることで影響を回避できる。

Shielderのレポートでは、この脆弱性に関する原因の分析結果や、具体的な攻撃手法などが解説されている。攻撃者は、対象PCのユーザーに悪意のあるリンクを開かせるだけで、そのPC上で任意のシステムコマンドを実行することができる。攻撃への悪用が極めて容易なことが大きな特徴で、CVSS v3のベーススコアは7.8で深刻度がImportantに分類されている。