Rust PHP Node.js Haskellなど複数のプログラミング言語に影響するWindows環境の引数エスケープ処理に関する脆弱性が発生
Rust PHP Node.js Haskell yt-dlpなど複数のプログラミング言語に影響するWindows環境の引数エスケープ処理に関する脆弱性(JVNVU#94343502)が発生しています。なお各プログラミング言語でパッチはリリース済みです。
脆弱性の概要
多くのプログラミング言語では、プログラム内からOS上でコマンドを実行する機能を提供しており、典型的な実装例としてはWindowsのCreateProcess()
関数を通じて当該コマンドを実行します。
脆弱性報告者によれば、実行する対象がバッチファイルだった場合、CreateProcess()
関数はcmd.exe
にコマンドライン文字列を渡す形で当該バッチファイルを実行します。
しかし、多くのプログラミング言語のコマンド実行処理においては、コマンドに渡す引数データのエスケープ処理がcmd.exe
に渡す場合を考慮した適切なものになっていません。
想定される影響
プログラムのなかで、ユーザーから受け取った入力を引数としてコマンドを実行している場合、細工された入力を処理することで、任意のコマンドを実行させられる可能性があります。
対象のプログラミング言語と脆弱性
以下が対象のプログラミング言語と脆弱性の詳細ですが、全てパッチがリリースされています。