最近の脆弱性 › CVE-2017-9791

Apache Struts 1 の脆弱性(CVE-2017-9791)

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

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

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を使用して作成した図です。実際の攻撃は、これと異なる場合があります。

攻撃の流れ: 1. 攻撃者が細工した値をフォームに入力する → 2. アプリがその値を ActionMessage に渡す → 3. メッセージの処理中に値が解釈される → 4. 攻撃者のコードが実行される1攻撃者が細工した値をフォームに入力する2アプリがその値を ActionMessage に渡す3メッセージの処理中に値が解釈される4攻撃者のコードが実行される攻撃の流れ: 1. 攻撃者が細工した値をフォームに入力する → 2. アプリがその値を ActionMessage に渡す → 3. メッセージの処理中に値が解釈される → 4. 攻撃者のコードが実行される1攻撃者が細工した値をフォームに入力する2アプリがその値を ActionMessage に渡す3メッセージの処理中に値が解釈される4攻撃者のコードが実行される

誰が影響を受ける

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 の公式の案内を確認してください。

やることチェックリスト

用語メモ

Apache Struts
Java でウェブアプリを作るための枠組み(フレームワーク)です。
プラグイン
ソフトに機能を付け足すための追加部品です。
リソースキー
表示する文章をあらかじめ別の場所に用意しておき、その文章を呼び出すための名前です。

元データ(英語・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.

公式情報