Interstage Interaction Manager: Struts1の脆弱性(CVE-2014-0094) (2014年6月12日)
1. 脆弱性の説明
該当製品が提供するStruts1において、Javaクラスローダーを外部から操作可能な脆弱性が確認されました。
なお、該当製品をインストールしているすべてのコンピュータが、脆弱性の影響を受けるわけではありません。
本脆弱性は、他社アプリケーションサーバーの環境、またはInterstage Web Serverを利用されている環境において、該当製品に含まれるStruts1をインストールしており、かつ、WebアプリケーションにおいてStruts1を使用している場合に、脆弱性の影響を受ける可能性があります。
後述する「該当製品の確認方法」をご参照のうえ、影響の有無をご確認ください。
対策Patchにつきましては、順次ご用意しております。対策Patchに関するご質問は、ご契約のサービスサポート窓口までお問い合わせください。
なお、該当製品に含まれているもの以外のStrutsを使用されている場合は、ご使用のStrutsの提供元が提示する回避策・対処方法等の情報に従ってください。
Interstage Interaction Managerについては以下のページを参照してください。
http://www.fujitsu.com/jp/products/software/middleware/business-middleware/interstage/products/interactionmgr/
「3-3. 回避方法」を早急に適用する様にお願いします。
2. 脆弱性のもたらす脅威
インターネット経由で本脆弱性の悪用を目的とした特別なリクエストを受け取った場合、Webアプリケーションの利用が出来なくなる、あるいは、サーバ上の任意のファイルが読み取られるなどの被害を受ける可能性があります。
Webサーバのアクセスログに記録されるリクエストURLのパラメータ名に「class.classLoader」が含まれている場合、本脆弱性を突いた攻撃を受けている可能性があります。
[アクセスログの例]
---------------------------------------------------------------------
192.168.0.1 - - [27/Apr/2014:16:18:04 +0900] "GET /test/test.do?class.classLoader.xxx....
---------------------------------------------------------------------
ただし、アクセスログに記録が残らない手段で攻撃する方法も確認されているため、ログの記録内容だけで攻撃の有無を完全に証明することはできません。
3. 該当システム・対策情報
3-1.該当システム
PRIMEQUEST 2000シリーズ, PRIMEQUEST 1000シリーズ, PRIMERGY, PRIMEPOWER, 富士通 S Series, SPARC Enterprise,SPARC M10, 他社(Sun SPARC製品)
3-2.該当製品・対策Patch
製品名 | バージョン | 対象OS | パッケージ名 | Patch ID |
---|---|---|---|---|
Interstage Interaction Manager | V9.0.0 | RHEL5(x86) | FJSVapcst | 発行予定あり |
Interstage Interaction Manager | V9.0.1 | RHEL5(x86) | FJSVapcst | 発行予定あり |
Interstage Interaction Manager | V9.1.0 | RHEL5(x86) | FJSVapcst | 発行予定あり |
Interstage Interaction Manager | V9.1.1 | RHEL5(x86)/ RHEL5(Intel64) | FJSVapcst | 発行予定あり |
Interstage Interaction Manager | V10.0.0 | RHEL5(x86)/ RHEL5(Intel64)/ RHEL6(x86)/ RHEL6(Intel64) | FJSVapcst | 発行予定あり |
Interstage Interaction Manager | V10.0.1 | RHEL5(x86)/ RHEL5(Intel64)/ RHEL6(x86)/ RHEL6(Intel64) | FJSVapcst | 発行予定あり |
Interstage Interaction Manager | V10.1.0 | RHEL5(x86)/ RHEL5(Intel64)/ RHEL6(x86)/ RHEL6(Intel64) | FJSVapcst | 発行予定あり |
Interstage Interaction Manager | V9.0.0 | Solaris 9/ Solaris 10 | FJSVapcst | 発行予定あり |
Interstage Interaction Manager | V9.0.1 | Solaris 9/ Solaris 10 | FJSVapcst | 発行予定あり |
Interstage Interaction Manager | V9.1.0 | Solaris 9/ Solaris 10 | FJSVapcst | 発行予定あり |
Interstage Interaction Manager | V9.1.1 | Solaris 9/ Solaris 10 | FJSVapcst | 発行予定あり |
Interstage Interaction Manager | V10.0.0 | Solaris 9/ Solaris 10/ Solaris 11 | FJSVapcst | 発行予定あり |
Interstage Interaction Manager | V10.0.1 | Solaris 9/ Solaris 10/ Solaris 11 | FJSVapcst | 発行予定あり |
Interstage Interaction Manager | V10.1.0 | Solaris 9/ Solaris 10/ Solaris 11 | FJSVapcst | 発行予定あり |
Interstage Interaction Manager | V9.0.0 | Windows 2000 Server / Windows Server 2003/ Windows Server 2003 R2 | FJSVapcst | 発行予定あり |
Interstage Interaction Manager | V9.0.1 | Windows 2000 Server / Windows Server 2003/ Windows Server 2003 R2/ Windows Server 2008 | FJSVapcst | 発行予定あり |
Interstage Interaction Manager | V9.1.0 | Windows 2000 Server / Windows Server 2003/ Windows Server 2003 R2/ Windows Server 2008 | FJSVapcst | 発行予定あり |
Interstage Interaction Manager | V9.1.1 | Windows 2000 Server / Windows Server 2003/ Windows Server 2003 R2/ Windows Server 2008/ Windows Server 2008 R2 | FJSVapcst | 発行予定あり |
Interstage Interaction Manager | V10.0.0 | Windows Server 2003/ Windows Server 2003 R2/ Windows Server 2008/ Windows Server 2008 R2/ Windows Server 2012/ Windows Server 2012 R2 | FJSVapcst | 発行予定あり |
Interstage Interaction Manager | V10.0.1 | Windows Server 2008/ Windows Server 2008 R2/ Windows Server 2012 | FJSVapcst | 発行予定あり |
Interstage Interaction Manager | V10.1.0 | Windows Server 2008/ Windows Server 2008 R2/ Windows Server 2012/ Windows Server 2012 R2 | FJSVapcst | 発行予定あり |
パッチ入手に関しては、当社サポートセンターにお問い合わせください。
参考: 該当製品の確認方法
製品のバージョンは、製品に添付されている「ソフトウェア説明書」で確認してください。
- ■脆弱性の影響を受ける一般的な例
- Struts1を使用するWebアプリケーションが動作するサーバーが、インターネットなど不特定多数のコンピュータからアクセスを受ける状態にある場合、脆弱性の影響を受ける可能性があります。
該当製品が動作するサーバーのネットワーク構成をご確認ください。 - ■Struts1をインストールしているかどうかを確認する方法
- 該当製品をご使用のサーバーで、他社アプリケーションサーバー、またはInterstage Web Serverがインストールされている環境において、下記のフォルダが存在する場合、Struts1がインストールされています。
※注:
「C:¥InteractionManager」「/opt」は、各プラットフォームにおけるデフォルトのインストール先です。必要に応じて、実際のインストール先に読み替えてください。
- 該当製品における、Struts1のインストール先
- [Windows]
C:¥InteractionManager¥APC¥struts、および
C:¥InteractionManager¥APC¥struts12 - [SolarisおよびLinux]
/opt/FJSVapcst/struts、および
/opt/FJSVapcst/struts12
- [Windows]
- ■Struts1を使用しているかどうかを確認する方法
- 以下の場合、Struts1を使用している可能性があります。
- WebアプリケーションのクラスパスにStruts1のJARファイルを設定している
または、 - Struts1のJARファイルをパッケージしている
なお、Struts1を実際に使用しているかどうかにつきましては、Webアプリケーションの開発者にご確認ください。
- (A)クラスパスを確認する方法
- 他社アプリケーションサーバー、またはInterstage Web Serverのマニュアルを参照し、Webアプリケーションのクラスパスに設定されているJARファイルが、該当製品のStruts1のインストールフォルダ配下のものかどうか、確認してください。
- (B)WebアプリケーションにJARファイルをパッケージしているかどうかを確認する方法
- WARファイル内のWEB-INF/libディレクトリに下記のJARファイルが存在するかどうかを確認してください。
・struts.jar
エンタープライズアプリケーション(ear)内のWARファイルも確認してください。
3-3. 回避方法
"class"や"Class"というパラメータが、Webアプリケーションに到達しないようにしてください。
例えば、次のような対策が考えられます。
- WAF(Web Application Firewall)やIPS(Intrusion Prevention System)などを使用している場合、本脆弱性への対処が可能かどうか、ご使用製品の提供元にご確認ください。
- サーブレットフィルタを実装して、各Webアプリケーションへ適用する。
- 下記の例のようなJavaプログラムをコンパイルして、クラスファイルを作成する。
[プログラムの例(クラス名は任意)]
------
import javax.servlet.Filter;
...(省略)...
import java.util.regex.Pattern;
public class StrutsFilter implements Filter {
static Pattern EXCLUDE_PATTERN = Pattern.compile("(^|¥¥W)[cC]lass¥¥W");
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain filter) throws IOException, ServletException {
Enumeration params = ((HttpServletRequest)req).getParameterNames();
while (params.hasMoreElements()) {
String name = (String) params.nextElement();
if (EXCLUDE_PATTERN.matcher(name).find()) {
throw new IllegalArgumentException(name);
}
}
filter.doFilter(req, res);
}
...(省略)...
}
------ - iで作成したクラスを、web.xmlでフィルタとして指定する。
[web.xml記入例(filter-nameに指定する名前は任意)]
------
<web-app>
...
<filter>
<filter-name>classfilter</filter-name>
<filter-class>StrutsFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>classfilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
...
</web-app>
------ - iで作成したクラスファイル、および、iiで修正したweb.xmlをWARファイルとしてパッケージングし、配備します。
Webアプリケーションの配備方法については、他社アプリケーションサーバー、またはInterstage Web Serverのマニュアルを参照してください。
- 下記の例のようなJavaプログラムをコンパイルして、クラスファイルを作成する。
4. 関連情報
- JVNDB-2014-002308
Apache StrutsのActionFormオブジェクトにおけるClassLoaderを操作される脆弱性
http://jvndb.jvn.jp/ja/contents/2014/JVNDB-2014-002308.html - IPA: Apache Struts2 の脆弱性対策について(CVE-2014-0094)(S2-020)
http://www.ipa.go.jp/security/ciadr/vul/20140417-struts.html
5. 改版履歴
- 2014年6月12日 新規掲載