最近の脆弱性 › CVE-2012-0391

Apache Struts 2 の脆弱性(CVE-2012-0391)

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

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

CVE番号CVE-2012-0391
製品Apache Struts 2
深刻度(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-01-21
米国政府機関の対応期限2022-07-21
ランサムウェアでの悪用不明(確認されていない)
弱点の種類(CWE)CWE-20

何が起きた

Web アプリを作るための部品 Apache Struts 2 の ExceptionDelegator という部分に、入力の扱いの弱点が見つかりました。値の型が合わないときのエラー処理で、送られた値を OGNL という式として実行してしまうため、攻撃者が細工した値を送ると任意の(攻撃者が好きに選べる)Java のプログラムを動かせるおそれがあります。NVD の評価では、離れた場所からログインなしで悪用でき、CISA によると実際の悪用が確認されています。

攻撃の流れ

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

攻撃の流れ: 1. 攻撃者が細工した値を Web アプリに送る → 2. 型が合わずエラー処理が動く → 3. 値が OGNL の式として実行される → 4. 攻撃者の Java のプログラムが動く1攻撃者が細工した値を Web アプリに送る2型が合わずエラー処理が動く3値が OGNL の式として実行される4攻撃者の Java のプログラムが動く攻撃の流れ: 1. 攻撃者が細工した値を Web アプリに送る → 2. 型が合わずエラー処理が動く → 3. 値が OGNL の式として実行される → 4. 攻撃者の Java のプログラムが動く1攻撃者が細工した値を Web アプリに送る2型が合わずエラー処理が動く3値が OGNL の式として実行される4攻撃者の Java のプログラムが動く

誰が影響を受ける

Apache Struts 2 で作られた Web アプリを運用している組織が対象です。NVD の説明では 2.2.3.1 より前が影響を受けます。Apache の S2-008 は、この CVE をほかの弱点とまとめて扱い、Struts 2.0.0 から Struts 2.3.17 を影響のある版としています。

何をすればいい

NVD の説明では 2.2.3.1 で直っていますが、Apache の S2-008 は Struts 2.3.18 以降に更新するよう強くすすめています。アプリが使っている Struts 2 が 2.3.18 以降になっているか確認してください。S2-008 は、更新に加えて ParameterInterceptor と CookieInterceptor の acceptedParamNames の設定を強めることも案内しています。公式の案内を確認してください。

やることチェックリスト

用語メモ

OGNL
Java のプログラムの中で、データを読み書きするための式の言語です。外から送られた値が式として実行されると危険です。
Apache Struts 2
Java で Web アプリを作るときに使われる、オープンソースの枠組み(フレームワーク)です。

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

Apache Struts 2 Improper Input Validation Vulnerability

概要

The ExceptionDelegator component in Apache Struts 2 before 2.2.3.1 contains an improper input validation vulnerability that allows for remote code execution.

推奨対応

Apply updates per vendor instructions.

公式情報