注目★★★★★GitHub Advisory
Deno CVE-2026-49402: Windows でコマンドインジェクション脆弱性
30秒で把握
- 1Deno CVE-2026-49402: Windows の shell:true でコマンドインジェクション確認
- 2escapeShellArg が & | % 等のメタ文字をエスケープせず任意コマンド挿入可能
- 3Unix 版 CVE-2026-27190 の Windows 対応版・修正済みバージョンへの更新を確認
要約
Denoの`node:child_process`実装において、Windowsで`shell: true`を指定した`spawn`/`spawnSync`/`exec`呼び出し時にコマンドインジェクションが可能な脆弱性(CVE-2026-49402)が公開された。`escapeShellArg()`の正規表現が空白・ダブルクォート・バックスラッシュしか検査せず、`&`・`|`・`<`・`>`・`^`・`!`・`%`などcmd.exeのメタ文字を含む引数をエスケープせずそのままシェルに渡していた。攻撃者が引数の一部を制御できる場合、任意の追加コマンドをcmd.exeに挿入できる。本脆弱性はUnixブランチを修正したCVE-2026-27190のWindows版に相当する。
あなたへの影響
DenoでWindowsかつ`shell: true`を使うコードを持つチームは、`spawn`/`spawnSync`/`exec`の引数に外部入力が混入していないか即確認し、修正済みバージョンへのアップデートを検討すること。
推奨:`shell: true`を使わず引数を配列で直接渡す実装への変更も根本的な対策として有効。