【活用ガイド】

JVNDB-2017-001621

Apache Struts2 に任意のコードが実行可能な脆弱性

概要

Apache Struts2 には、任意のコードが実行可能な脆弱性が存在します。

Apache Struts2 には、Jakarta Multipart parser の処理に起因する、任意のコードが実行可能な脆弱性が存在します。

なお、本脆弱性の攻撃コードが公開されています。
CVSS による深刻度 (CVSS とは?)

基本値: 10.0 (危険) [NVD値]
  • 攻撃元区分: ネットワーク
  • 攻撃条件の複雑さ: 低
  • 攻撃前の認証要否: 不要
  • 機密性への影響(C): 全面的
  • 完全性への影響(I): 全面的
  • 可用性への影響(A): 全面的

[参考] CVSS v3 による深刻度
基本値: 9.8 (緊急) [NVD値]
  • 攻撃元区分: ネットワーク
  • 攻撃条件の複雑さ: 低
  • 攻撃に必要な特権レベル: 不要
  • 利用者の関与: 不要
  • 影響の想定範囲: 変更なし
  • 機密性への影響(C): 高
  • 完全性への影響(I): 高
  • 可用性への影響(A): 高
影響を受けるシステム


Apache Software Foundation
  • Apache Struts 2.3.5 から 2.3.31 まで
  • Apache Struts 2.5 から 2.5.10 まで

想定される影響

遠隔の第三者によって細工されたリクエストを処理することで、アプリケーションの権限で任意のコードを実行される可能性があります。
対策

[アップデートする]
本脆弱性が修正されたバージョン (Struts 2.3.32 および Struts 2.5.10.1) へアップデートする。

[ワークアラウンドを実施する]
次のワークアラウンドを実施し、本脆弱性の影響を軽減する。

 * サーブレットフィルタや Web Application Firewall などを使用して、Content-Type ヘッダを検証し、"multipart/form-data" が文字列として含まれる不正なリクエストを遮断する
 * File Upload Interceptor を無効化する (Struts 2.5.8 から Struts 2.5.10 に対してのみ有効)

  File Upload Interceptor
  https://struts.apache.org/docs/file-upload-interceptor.html


JPCERT/CCからの補足情報【2017年3月17日追記】
開発者は、multipart/form-data を扱うパーサを、デフォルトの JakartaMultipartRequest から別の実装に変更する方法を、対策として記載しています。
JPCERT/CC による検証では、本脆弱性の影響を受けるバージョンにおいて JakartaStreamMultiPartRequest に変更しても本脆弱性の影響を受けることを確認したため、対策方法から削除しています。

別の実装
https://cwiki.apache.org/confluence/display/WW/File+Upload#FileUpload-AlternateLibraries
ベンダ情報

Apache Software Foundation シスコシステムズ
CWEによる脆弱性タイプ一覧  CWEとは?

  1. 不適切な入力確認(CWE-20) [NVD評価]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2017-5638
参考情報

  1. JVN : JVNVU#93610402
  2. National Vulnerability Database (NVD) : CVE-2017-5638
  3. IPA 重要なセキュリティ情報 : Apache Struts2 の脆弱性対策について(CVE-2017-5638)(S2-045)
  4. JPCERT 注意喚起 : JPCERT-AT-2017-0009
  5. US-CERT Vulnerability Note : VU#834067
更新履歴

[2017年03月10日]
  掲載
[2017年03月15日]
  CVSS による深刻度:内容を更新
  ベンダ情報:Apache Software Foundation (Uses default error key if specified key doesn't exist (3523064)) を追加
  ベンダ情報:Apache Software Foundation (Uses default error key if specified key doesn't exist (6b8272c)) を追加
  ベンダ情報:シスコシステムズ (Content-Type: Malicious - New Apache Struts2 0-day Under Attack) を追加
  CWE による脆弱性タイプ一覧:CWE-ID を追加
  参考情報:National Vulnerability Database (NVD) (CVE-2017-5638) を追加
  参考情報:US-CERT Vulnerability Note (NVD) (VU#834067) を追加
[2017年03月21日]
  対策:内容を更新