最近の脆弱性 › CVE-2017-9805
Apache Struts の安全でないデシリアライズの脆弱性(CVE-2017-9805)
この解説はAIを使用して作成しています。誤りを含む可能性があり、内容は保証できません。必ず公式情報をご確認ください。
基本情報(データから表示)
| CVE番号 | CVE-2017-9805 |
|---|---|
| 製品 | Apache Struts |
| 深刻度(CVSS) | 8.1 重要CVSS v3.1 NVD による評価 詳細(ベクター)CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H |
| KEVへの追加日 | 2021-11-03 |
| 米国政府機関の対応期限 | 2022-05-03 |
| ランサムウェアでの悪用 | 不明(確認されていない) |
| 弱点の種類(CWE) | CWE-502 |
何が起きた
Java で Webアプリを作るための部品群 Apache Struts の REST Plugin に、送られてきた XML のデータを元に戻す(逆シリアル化する)際に、受け入れるデータの型を制限していない弱点が見つかりました。これにより、離れた場所から任意のコードを実行されるおそれがあり、実際の悪用が確認されています。NVD の評価では、攻撃はネットワーク経由で行われ、攻撃者に権限は不要で、被害者の操作も不要です。
攻撃の流れ
データをもとに、AIを使用して作成した図です。実際の攻撃は、これと異なる場合があります。
誰が影響を受ける
Apache Struts の REST Plugin を使っている Webアプリの運営者が対象です。NVD の説明では、2.1.1 から 2.3.x の 2.3.34 より前までと、2.5.x の 2.5.13 より前が影響を受けるとされています。Apache の勧告(S2-052)では、影響を受けるのは Struts 2.1.6 から 2.3.33 までと、2.5 から 2.5.12 までと書かれています。
何をすればいい
Apache の公式の案内を確認し、Struts 2.5.13 または 2.3.34 以降に更新してください。更新すると型の制限が初期設定で入るため、一部の REST の処理が動かなくなる可能性があると Apache は説明しています。すぐに更新できない場合、REST Plugin を使っていなければ取り除くのが最善とされ、ほかに XML の処理を止めて通常のページと JSON だけを扱うよう制限する方法も示されています。
やることチェックリスト
- Struts を 2.5.13 または 2.3.34 以降に更新する
- 使っていない REST Plugin を取り除く
- REST Plugin で XML の処理を止める
用語メモ
- XML
- データを、タグで区切った決まった形で表すための書き方です。
- 逆シリアル化
- 保存や送信のために変換したデータを、プログラムで使える形に戻す処理です。中身を確かめずに戻すと、攻撃に使われることがあります。
- JSON
- データをやり取りするための、軽くて読みやすい書き方の一つです。
元データ(英語・CISA KEV より)
Apache Struts Deserialization of Untrusted Data Vulnerability
概要
Apache Struts REST Plugin uses an XStreamHandler with an instance of XStream for deserialization without any type filtering, which can lead to remote code execution when deserializing XML payloads.
推奨対応
Apply updates per vendor instructions.