最近の脆弱性 › CVE-2021-21315

Npm package System Information Library for Node.JS のコマンドインジェクションの脆弱性(CVE-2021-21315)

この解説はAIを使用して作成しています。誤りを含む可能性があり、内容は保証できません。必ず公式情報をご確認ください。

基本情報(データから表示)

CVE番号CVE-2021-21315
製品Npm package System Information Library for Node.JS
深刻度(CVSS)7.8 重要CVSS v3.1
NVD による評価
詳細(ベクター)CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
KEVへの追加日2022-01-18
米国政府機関の対応期限2022-02-01
ランサムウェアでの悪用不明(確認されていない)
弱点の種類(CWE)CWE-78

何が起きた

Node.js 用の npm パッケージ systeminformation で、si.inetLatency()、si.inetChecksite()、si.services()、si.processLoad() などの関数に渡す値の確認が不十分なため、OS のコマンドを実行させられる弱点(コマンドインジェクション)が見つかりました。CISA によると、この弱点は実際の攻撃に悪用されています。NVD の評価では、対象の機器上(ローカル)で、一般利用者程度の権限を持つ攻撃者が悪用できます。

攻撃の流れ

データをもとに、AIを使用して作成した図です。実際の攻撃は、これと異なる場合があります。

攻撃の流れ: 1. 攻撃者が細工した値を用意する → 2. 値が si.services() などに渡される → 3. 値が確認されずに処理される → 4. OS の命令として実行される1攻撃者が細工した値を用意する2値が si.services() などに渡される3値が確認されずに処理される4OS の命令として実行される攻撃の流れ: 1. 攻撃者が細工した値を用意する → 2. 値が si.services() などに渡される → 3. 値が確認されずに処理される → 4. OS の命令として実行される1攻撃者が細工した値を用意する2値が si.services() などに渡される3値が確認されずに処理される4OS の命令として実行される

誰が影響を受ける

systeminformation を組み込んだアプリを作っている開発者や、そのアプリを使っている組織が対象です。5.3.1 より前のバージョンが影響を受けます。

何をすればいい

開発元の公式の案内を確認し、systeminformation を 5.3.1 以降に更新してください。すぐに更新できない場合、開発元は、si.inetLatency()、si.inetChecksite()、si.services()、si.processLoad() などに渡す値を確認・無害化し、文字列だけを受け付けて配列は拒否するよう案内しています。

やることチェックリスト

用語メモ

npm パッケージ
Node.js のプログラムで使える部品を、npm というしくみで配布したものです。
コマンドインジェクション
入力に OS への命令を紛れ込ませて、プログラムに実行させてしまう攻撃です。
無害化
入力から危険な文字や形を取り除き、安全な形にしてから使うことです。

元データ(英語・CISA KEV より)

System Information Library for Node.JS Command Injection

概要

In this vulnerability, an attacker can send a malicious payload that will exploit the name parameter. After successful exploitation, attackers can execute remote.

推奨対応

Apply updates per vendor instructions.

公式情報