ページの先頭です。
ここから本文です。

お知らせ

[WebOTX] OpenJDK 8 Update 232 の不具合による問題と対策について


概要

OpenJDK 8 Update 232 では、SecurityManager による権限チェックの際に不正なファイルパスに対しては、無条件で権限無しと判定されるという不具合があります。

- JDK-8234479: FilePermission for "<<ALL FILES>>" does not imply an invalid path file.
- JDK-8235909: File.exists throws AccessControlException for invalid paths when a SecurityManager is installed


この影響により、OpenJDK 8 Update 232 を使用した場合 WebOTX 製品で以下の事象が発生することを確認しました。

(事象1)
リソースアダプタを配備したドメインに対するEJBアプリケーションの配備処理で配備処理は完了するが権限不足の例外が発生する。アプリケーションの動作に影響はない。

(事象2)
配備サービスのバージョニング機能を使用して「foo:1.0」のようにアプリケーション名にコロン(:)で区切ったバージョンIDを付与した場合、WebOTX V9.6 ではアプリケーションの配備時に警告メッセージと例外スタックトレースがログに出力される。アプリケーションの動作に影響はない。
WebOTX V10.2 では配備に失敗する。

[ご参考] バージョニング機能

(事象3)
OLF/TP Adapterで、リソースアダプタの ra.xml に記載する OlfAdapter.ini のパスや、OlfAdapter.ini に記載する OlfAdapter.xml のパスなどに、OS 上で許可されない記号や文字を含めた場合(例えば、ディレクトリ名の中に「:」を含めた場合)にエラーの内容がセキュリティ例外に変わる。


影響のある製品

  • WebOTX Application Server Express V9.6
  • WebOTX Application Server Standard V9.6
  • WebOTX Application Server Enterprise V9.6
  • WebOTX Application Server Express V10.2
  • WebOTX Application Server Standard V10.2


詳細

OpenJDK 8 Update 232 では以下の変更が行われました。

- 8213429: Windows file handling redux
- 8167646: Better invalid FilePermission

<参考>https://hg.openjdk.java.net/jdk8u/jdk8u/jdk/rev/b148d99d5cc3


この変更により、FilePermission の引数に与えられたファイルパスが不正な形式である場合に、FilePermission の implies メソッドが必ず false を返すようになりました。そのため不正なパスに対しては、無条件で権限無しと判定されます。

ただし、この変更による不具合は OpenJDK の JDK Bug System に登録されており(JDK-8235909)、OpenJDK 8 Update 242 で修正されました。また、OpenJDK 9 以降、Oracle社がリリースしている Java SE Development Kit では発生しません。

本事象が発生すると次の例外が出力されます。

(事象1の場合)
-----------------------------------------------------
javax.management.MBeanException: Exception invoking method in runtime bean bindI
orInternal
Target exception message: java.security.AccessControlException: access denied ("
java.io.FilePermission" "C:\WebOTX\domains\domain1\config\file:\C:\WebOTX\domain
s\domain1\applications\<リソースアダプタ名>" "read")
javax.management.MBeanException: Exception invoking method in runtime bean bindI
orInternal
-----------------------------------------------------

(事象2の場合)
-----------------------------------------------------
yyyy-mm-dd 05:12:05,248 WARN ADMIN - OTX01140002: MBean の初期化に失敗しました : [RMI TCP Connection(638)-192.168.3.2]
java.security.AccessControlException: access denied ("java.io.FilePermission" "C:\WebOTX\domains\domain1\config\mbean-default-value\runtime\j2ee-applications\foo:bar.xml" "read")

:
:

at com.nec.webotx.enterprise.admin.WebOTXModelMBean.initialize(WebOTXModelMBean.java:355)
at com.nec.webotx.enterprise.admin.WebOTXModelMBean.<init>(WebOTXModelMBean.java:315)

-----------------------------------------------------

(事象3の場合)
OpenJDK 8 Update 232 を使用した場合のエラー内容
-----------------------------------------------------
ConfigManager : unexpected error, java.security.AccessControlException: access denied ("java.io.FilePermission" "C:\olftp:conf\OlfAdapter.ini" "read"), reason = 0x00050300.
-----------------------------------------------------

それ以外の JDK を使用した場合のエラー内容
-----------------------------------------------------
ConfigManager : Olf library initialize failed, property file = C:/olftp:conf/OlfAdapter.ini, reason = 0x00050404.
-----------------------------------------------------


対処方法

前述の事象を回避するためには、OpenJDK 8 Update 242 以降、あるいはOracle社がリリースしている Java SE Development Kit をご利用ください。


回避方法

ありません。


更新履歴

2020/1/15 初版

2020/2/7 第2版 詳細、対処方法を更新

製品名カテゴリ

WebOTX
WebOTX Application Server

  • コンテンツID: 3010102954
  • 公開日: 2020年01月15日
  • 最終更新日:2020年02月25日
ここからページ共通メニューです。 ページ共通メニューを読み飛ばす。