- ひとことでApache Struts の Struts 1 プラグインに、入力した値でコードを動かされる弱点
- 深刻度9.8 緊急CVSS v3.1
- まずやることStruts 1 プラグインを使っているか確かめる
基本情報(データから表示)
| CVE番号 | CVE-2017-9791 |
|---|---|
| 製品 | Apache Struts 1 |
| 深刻度(CVSS) | 9.8 緊急CVSS v3.1 NVD による評価 詳細(ベクター)CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| KEVへの追加日 | 2022-02-10 |
| 米国政府機関の対応期限 | 2022-08-10 |
| ランサムウェアでの悪用 | 不明(確認されていない) |
| 弱点の種類(CWE) | CWE-20(入力の確認の不備) |
何が起きた
Apache Struts の Struts 1 プラグインで、利用者が入力した値をそのままエラーメッセージなどの表示(ActionMessage)に使っていると、細工した値でリモートからコードを実行されるおそれがある弱点が見つかりました。CISA は悪用が確認された脆弱性の一覧に載せています。NVD の評価では、離れた場所から、ログインなどの特別な権限なしで攻撃できます。
攻撃の流れ
データをもとに、AIを使用して作成した図です。実際の攻撃は、これと異なる場合があります。
誰が影響を受ける
Apache の勧告(S2-048)では、Struts 1 プラグインと Struts 1 のアクションを使っている Struts 2.3.x が対象です。NVD の説明では、Struts 2.1.x と 2.3.x が対象とされています。
何をすればいい
Apache の勧告(S2-048)は、ActionMessage には入力した値をそのまま渡さず、必ずリソースキー(あらかじめ用意したメッセージの名前)を使うよう案内しています。アプリを作った開発者に、Struts 1 プラグインの使い方を確認してもらってください。あわせて Apache の公式の案内を確認してください。
やることチェックリスト
- Struts 1 プラグインを使っているか確かめる
- ActionMessage に入力値をそのまま渡さないようにする
- メッセージはリソースキーで指定するように直す
用語メモ
次に読む
公式情報と元データ
公式情報
元データ(英語・CISA KEV より)を開く
Apache Struts 1 Improper Input Validation Vulnerability
概要
The Struts 1 plugin in Apache Struts might allow remote code execution via a malicious field value passed in a raw message to the ActionMessage.
推奨対応
Apply updates per vendor instructions.
この元データの出どころ: CISA KEV カタログで見る