Node.js の脆弱性 CVE-2024-56334 が FIX:ただちにアップデートを!

CVE-2024-56334: Command Injection Flaw Exposes Millions of Node.js Systems to Attack

2024/12/23 SecurityOnline — 広く使用されている Node.js 用パッケージ systeminformation に存在する、深刻なコマンド・インジェクションの脆弱性 CVE-2024-56334 が確認された。このパッケージは、月間に 800万以上もダウンロードされ、総ダウンロード数は 3億3000万に上る。この脆弱性の悪用に成功した攻撃者は、任意の OS コマンドを実行することが可能となるが、パッケージの使用方法に応じて、リモート・コード実行 (RCE) や権限の昇格につながる可能性もある。

この脆弱性は、ネットワーク SSID 情報を取得する getWindowsIEEE8021x 関数内の、コマンド・インジェクションの欠陥に起因する。この関数は、cmd.exe にパラメータとして渡す SSID を、前もって適切にサニタイズできない。その結果として、攻撃者は Wi-Fi ネットワークの SSID 内に悪意のコマンドを埋め込むことが可能となり、脆弱性のあるシステム上で getWindowsIEEE8021x 関数が呼び出される際に、悪意のコマンド実行を達成する。

脆弱性 CVE-2024-56334 を発見したセキュリティ研究者 xAiluros は、Windows サービス内の権限を昇格させることで、その潜在的な影響を実証している。攻撃者は、SSID で Wi-Fi ホットスポットを作成することで、この脆弱性を悪用する可能性を手にする。脆弱性のあるシステムが、この悪意のネットワークに接続されると、SSID に埋め込まれた攻撃者のコマンドが実行され、リモート・コード実行や権限昇格へといたる。

以下の2つのペイロード例が、悪用の可能性を示している。

  1. 無期限の Ping フラッド:SSID: a” | ping /t 127.0.0.1 &
  2. 悪意のファイルの実行:SSID: a” | %SystemDrive%¥a¥a.exe &

この悪意の Wi-Fiネットワークへの接続が行われると、パッケージを使用するアプリケーション内の脆弱な関数を関数が呼び出される。

const si = require(‘systeminformation’);
si.networkInterfaces((net) => { console.log(net) });

それにより、上記コードの実行による攻撃が誘発され、被害者のマシン上でのペイロード実行へといたる。

この脆弱性の影響範囲は、systeminformation のバージョン 5.23.6 までとなる。すでに、バージョン 5.23.7 がリリースされ、この問題は対処されている。このパッケージを使用するユーザーに対して、強く推奨されるのは、直ちに最新バージョンへと更新することである。