【活用ガイド】

JVNDB-2017-001621

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

概要

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

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

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

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


Apache Software Foundation
  • Apache Struts 2.3.5 から 2.3.31 まで
  • Apache Struts 2.5 から 2.5.10 まで
日本電気
  • ESMPRO/ServerManager 6.10 から 6.16
  • InfoFrame Relational Store 全バージョン
  • StarOffice X Enterprise V4.0
  • StarOffice X Enterprise V5.0
  • StarOffice X Enterprise V5.1
  • StarOffice X Standard V4.0
  • StarOffice X Standard V5.0
  • StarOffice X Standard V5.1
  • WebOTX Developer (with Developer's Studio) V9.3
  • WebOTX Developer (with Developer's Studio) V9.4
  • iStorage HSシリーズ 5.0.5
日立
  • HiRDB Server Version 9
  • HiRDB Control Manager - Server Version 9

本脆弱性の影響を受ける製品の詳細については、ベンダ情報をご確認ください。
想定される影響

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

[アップデートする]
本脆弱性が修正されたバージョン (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 シスコシステムズ 日本電気
  • NEC製品セキュリティ情報 : NV17-013
日立 富士通
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日]
      対策:内容を更新
    [2017年04月17日]
      影響を受けるシステム:ベンダ情報の追加に伴い内容を更新
      ベンダ情報:日立 (hitachi-sec-2017-110) を追加
    [2017年07月25日]
      影響を受けるシステム:ベンダ情報の追加に伴い内容を更新
      ベンダ情報:日本電気 (NV17-013) を追加
    [2017年09月04日]
      ベンダ情報:富士通 (Veritas NetBackup: 任意のコマンドが実行される脆弱性(CVE-2017-5638) (2017年9月1日)) を追加
    [2017年10月03日]
      影響を受けるシステム:ベンダ情報 (NV17-013) の更新に伴い内容を更新