1. トップ
  2. 新着ニュース
  3. IT
  4. IT総合

Windowsで動くプログラミング言語に脆弱性、引数の扱い方の穴を突いて攻撃

マイナビニュース / 2024年4月12日 7時43分

画像提供:マイナビニュース

CERT Coordination Center (CERT/CC, Carnegie Mellon University)は4月10日(米国時間)、「VU#123335 - Multiple programming languages fail to escape arguments properly in Microsoft Windows」において、Windows上で動作する複数のプログラミング言語から引数を適切にエスケープしない脆弱性を発見したと報じた。この脆弱性はアプリケーションのコマンドインジェクションにつながるとして注意を呼びかけている。

○脆弱性の詳細

多くのプログラミング言語にはオペレーティングシステム上で任意のコマンドを実行する機能(Go言語のexec.CommandやPythonのsubprocess.runなど)が用意されている。これら機能はコマンド名とコマンドに渡す引数(以下、コマンドライン引数と呼称)を受け取る仕組みがあり、プログラミング言語は環境に合わせた方法にて指定されたコマンドを起動する。

Windowsの場合は「CreateProcess」と呼ばれるシステム標準のアプリケーション・プログラミング・インタフェース(API: Application Programming Interface)を使用してコマンドを実行する(参考:「プロセスを作成する - Win32 apps | Microsoft Learn」)。

このAPIに渡すコマンドライン引数は適切にエスケープすることが期待されており、Microsoftは2011年に誤った使用方法と解決策について文書化している(参考:「Everyone quotes command line arguments the wrong way | Microsoft Learn」)。

今回発見された不具合は、複数のプログラミング言語においてこのコマンドライン引数のエスケープが不適切とされるもので、攻撃者は慎重にコマンドライン引数を組み立てることで任意のコマンドを実行する可能性がある。

この脆弱性は脆弱性情報データベース(CVE: Common Vulnerabilities and Exposures)に複数登録されており、「CVE-2024-1874」、「CVE-2024-22423」、「CVE-2024-24576」、「CVE-2024-3566」として追跡されている。
○脆弱性の影響を受けるプログラミング言語

この記事に関連するニュース

トピックスRSS

ランキング

複数ページをまたぐ記事です

記事の最終ページでミッション達成してください