Apache Struts 1.2.9 with SP2 by TERASOLUNA

はじめに

TERASOLUNA フレームワークが利用しているApache Struts 1.2.9 sp1に対して、Apache Struts1の脆弱性を修正したバージョンをApache Struts 1.2.9 with Security Patch 2 contributed by TERASOLUNA(以下、Struts 1.2.9 sp2)としてApache License, Version 2.0で提供します。

  • CVE-2015-0899
    • TERASOLUNAフレームワークが利用している Apache Struts 1.1~1.2.9-sp1および1.3.xには、MultiPageValidator機能(以下、MPV機能)で利用するリクエストパラメータ「page」の値が改竄されることにより、入力チェックが不正にスキップされてしまう脆弱性が存在します。

Struts 1.2.9 sp2

Struts 1.2.9 sp2では、Struts 1.2.9 sp1に対して下記の修正を加えています。

  • 修正内容
  • Struts定義ファイル(struts-config.xml)に設定項目acceptPageを追加しました。
    • acceptPageの設定を行わない場合は、リクエストパラメータ「page」の値に関係なく入力チェックを実施します。
    • acceptPageの設定を行った場合は、その値とリクエストパラメータ「page」を比較し、大きい方の値に従って入力チェックを行います。
  • 詳細については、TERASOLUNA Server Framework for Java(Web版) 機能説明書.pdf P218 「WF-01 拡張入力チェック機能 - MultiPage-Validate(以下、MPV)機能の使用について」をご確認ください。
  • 修正箇所

Struts 1.2.9 sp1 から Struts 1.2.9 sp2 への更新

既に導入済みのStrutsのjarファイル「struts.jar」を、本パッチで提供している「struts.jar」に置き換えてください。置き換える必要があるのはStrutsのjarファイルのみとなります。Strutsが依存しているライブラリの変更はありません。

ソースコードからのビルド手順

本パッチが提供するstruts-1.2.9-sp2のソースをビルドして、struts.jarを作成する手順を示します。

  1. JDK1.3.1_04のインストール
  2. apache-ant-1.6.1のインストールとライブラリの追加
    apache-ant-1.6.1を配置し、antのlibディレクトリ配下に以下のライブラリを追加する。
    • commons-logging-1.0.4.jar
    • junit-3.8.1.jar
    • xalan-2.5.1.jar
  3. struts-1.2.9-sp2のソースコードの配置
    ソースコードのzipを展開して任意のディレクトリに配置し、ビルド用にstruts-1.2.9-sp2-srcフォルダの直下にlibフォルダを作成する。
  4. ビルドに必要となるjarファイルの配置
    以下のjarファイルを任意のディレクトリに配置する。
    • antlr-2.7.2.jar
    • checkstyle-2.4.jar
    • commons-beanutils-1.7.0.jar
    • commons-digester-1.6.jar
    • commons-fileupload-1.0.jar
    • commons-logging-1.0.4.jar
    • commons-validator-1.1.4.jar
    • junit-3.8.1.jar
    • log4j-1.2.14.jar
    • servletapi-2.3.jar
    • xerces-1.4.4.jar
    • oro-2.0.7.jar
    • jakarta-taglibs-standard-1.0
      • jstl.jar
      • standard.jar
    • jakarta-tomcat-4.0.6
      • jdbc2_0-stdext.jar
  5. ビルド用の設定ファイルの作成
    build.properties.sampleをbuild.propertiesにリネームし、内部に記述されているパスを自環境に合わせ修正する。
  6. ビルド用の環境変数の設定
    以下の環境変数を自環境に合わせて設定する。
    • JAVA_HOME
    • ANT_HOME
  7. antを実行してビルド

ダウンロード

参照

CVE - CVE-2015-0899

JVNDB-2015-000042 - JVN iPedia - 脆弱性対策情報データベース

免責条項

適用される法律または書面での同意によって命じられない限り、Struts 1.2.9 sp2はApache License, Version 2.0に基づいて頒布され、明示黙示を問わず、いかなる保証も条件もなしに「現状のまま」頒布されます。Apache License, Version 2.0における権利と制限を規定した文言については、Apache License, Version 2.0の本文を参照してください。

※ 「TERASOLUNA」は、日本及びその他の国における株式会社NTTデータの商標または登録商標です。
※ その他、記載されている会社名、商品名、又はサービス名は、各社の登録商標又は商標です。