概要
JVNVU#96802408において、次のApache Tomcat Connectors(mod_jk)の脆弱性が公開されました。
CVE-2023-41081
WebOTX Application Serverでは、Apache Tomcat Connectors(mod_jk)をベースにしたWebサーバプラグインを提供しています。
Webサーバプラグインは、CVE-2023-41081の脆弱性の影響があります。
影響のある製品
次の製品が該当し、それらがサポートする全てのOSで影響があります。
- WebOTX Web Edition V5.2~V5.3
- WebOTX Standard-J Edition V5.2~V5.3
- WebOTX Standard Edition V5.2~V5.3
- WebOTX Enterprise Edition V5.2~V5.3
- WebOTX Web Edition V6.1~V6.5
- WebOTX Standard-J Edition V6.1~V6.5
- WebOTX Standard Edition V6.2~V6.5
- WebOTX Enterprise Edition V6.2~V6.5
- WebOTX Enterprise Service Bus V6.4~V6.5
- WebOTX Application Server Web Edition V7.1
- WebOTX Application Server Standard-J Edition V7.1
- WebOTX Application Server Standard Edition V7.1
- WebOTX Application Server Enterprise Edition V7.1
- WebOTX Enterprise Service Bus V7.1
- WebOTX Application Server Web Edition V8.1
- WebOTX Application Server Standard-J Edition V8.1
- WebOTX Application Server Express V8.2~V8.5
- WebOTX Application Server Foundation V8.2~V8.5
- WebOTX Application Server Standard V8.2~V8.5
- WebOTX Application Server Enterprise V8.2~V8.5
- WebOTX Portal V8.2~V8.4
- WebOTX Enterprise Service Bus V8.1~V8.5
- WebOTX Application Server Express V9.1~V9.4 (※)
- WebOTX Application Server Standard V9.2~9.4
- WebOTX Application Server Enterprise V9.2~9.6
- WebOTX Portal V9.1
- WebOTX Application Server Express V10.1~V10.4 (※)
- WebOTX Application Server Standard V10.1~V10.4
- WebOTX Client V10.1~V10.4
- WebOTX Application Server Express V11.1 (※)
- WebOTX Application Server Standard V11.1
- WebOTX Application Server Standard Extended Option V11.1
- WebOTX Client V11.1
(※) WebOTX Enterprise Service Bus V9.2~V9.3/V10.1/V10.3/V11.1、
WebOTX Portal V9.3/V10.1/V10.4/V11.1にバンドルされている
WebOTX Application Server Expressを使用している場合にも該当します。
詳細
Apache Tomcat Connectors(mod_jk)には、その構成がプロキシされる可能性のあるすべてのリクエストに対して明示的なマウントを提供していない場合に、mod_jk は暗黙的なマッピングを使用して、リクエストを最初に定義されたワーカーにマップすることによる情報漏えいの脆弱性(CVE-2023-41081)があります。
[脆弱性に該当する条件]
次の全てに合致する場合
・Apache HTTP ServerまたはWebOTX Webサーバと、Webコンテナを連携している。
Webサーバ種別の確認方法は「□Webサーバ種別確認方法」を参照。
・Webサーバプラグインのバージョンが1.2.0.x~1.2.48.x
バージョンの確認方法は「□Webサーバプラグインバージョン確認方法」を参照。
・WebOTX V9以前かつWebサーバプラグインの動的反映機能が無効、またはWebOTX V10以降の場合。
WebOTX V9以前の動的反映機能の有効/無効の確認方法は「□動的反映機能の有効/無効確認方法」を参照。
※WebOTX V10以降の場合は必ず条件に合致するため、動的反映機能の有効/無効の確認は不要です。
・配備されているコンテキストに対応するマッピング定義が漏れている。
マッピング定義有無の確認方法は「□コンテキストに対応するマッピング定義が漏れなく定義されているかの確認方法」を参照。
□Webサーバ種別確認方法
(1) 以下を参照して、連携しているWebサーバがWebOTX Webサーバか、その他の外部Webサーバかを切り分けます。
https://www.support.nec.co.jp/View.aspx?id=3150111658
(2) その他の外部Webサーバの場合は以下の方法でApache HTTP Serverか否かを切り分けます。
Windowsの場合:
(2)-1. システムで利用しているHTTP/HTTPSのポート番号をリッスンするPIDを特定します。
プロンプト> netstat -ano |findstr LISTENING | findstr /C:":<ポート番号> "
実行結果の一番右の値がWebサーバのPIDです。
---------------------------------------------------------------------------
TCP 0.0.0.0:<ポート番号> 0.0.0.0:0 LISTENING <PID>
---------------------------------------------------------------------------
(2)-2. PIDからプロセスを特定します。
プロンプト> tasklist /FI "PID eq <PID>"
実行結果の一番左の値が"httpd.exe"であればApache HTTP Serverです。
---------------------------------------------------------------------------
イメージ名 PID セッション名 セッション# メモリ使用量
======== ====== ======== ======== ========
httpd.exe <PID> ******* * **** K
---------------------------------------------------------------------------
UNIXの場合:
(2)-1. システムで利用しているHTTP/HTTPSのポート番号をリッスンするプロセスを特定します。
プロンプト# lsof -P -i :<ポート番号> -sTCP:LISTEN
実行結果の一番左が"httpd"であればApache HTTP Serverです。
----------------------------------------------------------------------------------
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd <PID> <ユーザ名> ** IPv6 ***** 0t0 TCP *:<ポート番号> (LISTEN)
httpd <PID> <ユーザ名> ** IPv6 ***** 0t0 TCP *:<ポート番号> (LISTEN)
----------------------------------------------------------------------------------
□Webサーバプラグインバージョン確認方法
(1) 以下のファイルを開きます。
〇Apache HTTP Serverの場合
Windowsの場合:
{Apache HTTP Serverインストールディレクトリ}\logs\error.log
UNIXの場合:
{Apache HTTP Serverインストールディレクトリ}/logs/error_log
〇WebOTX Webサーバの場合
□WebOTX V5の場合
Windowsの場合:
${INSTALL_ROOT}\WebServer\logs\error.log
UNIXの場合:
/opt/WebOTX/WebServer/logs/error_log
□WebOTX V6~V8の場合
Windowsの場合:
${INSTANCE_ROOT}\logs\WebServer\error.log
UNIXの場合:
${INSTANCE_ROOT}/logs/WebServer/error_log
□WebOTX V9~V11の場合
Windowsの場合:
${INSTANCE_ROOT}\logs\web\error.log
UNIXの場合:
${INSTANCE_ROOT}/logs/web/error_log
(2) Webサーバプラグインのバージョンを確認します。
----------------------------------------------------------------
{Webサーバ製品名}/{Webサーババージョン} ({OS種別}) Webserver_Plugin/{Webサーバプラグインバージョン} configured -- resuming normal operations
----------------------------------------------------------------
□動的反映機能の有効/無効確認方法 ※WebOTX V9以前のみ対象
(1) 以下のファイルを開きます。
${INSTANCE_ROOT}/config/WebCont/workers.properties
(2) "worker.list" プロパティの値を確認します。
"ajp13_original"が含まれている場合は動的反映機能が無効です。
動的反映機能無効設定例.
----------------------------------
worker.list=ajp13,ajp13_original
----------------------------------
□コンテキストに対応するマッピング定義が漏れなく定義されているかの確認方法
配備されているコンテキスト各々に対応するworkerマッピングの定義(※)が以下のファイルに漏れなく定義されているかを確認します。
WebOTX V5
・${INSTALL_ROOT}/WebCont/conf/mod_jk-*.conf-auto
または
・${INSTALL_ROOT}/WebServer/conf/httpd.conf
WebOTX V6~V8
・${INSTANCE_ROOT}/config/WebCont/mod_jk-*.conf*
または
・${INSTANCE_ROOT}/config/WebServer/httpd.conf
WebOTX V9~V11
・${INSTANCE_ROOT}/config/WebServer/httpd.conf
または
・${INSTANCE_ROOT}/config/WebCont/mod_jk-*.conf*
または
・${INSTANCE_ROOT}/config/WebCont/uriworkermap.properties*
(※)コンテキストに対応するworkerマッピングの定義
□「httpd.conf」「mod_jk-*」ファイルの場合
---------------------------------------
JkMount {コンテキストパス} {worker名}
---------------------------------------
□「uriworkermap.properties*」ファイルの場合
---------------------------------------
{コンテキストパス}={worker名}
---------------------------------------
[脆弱性の影響]
暗黙的なマッピングにより、ステータスワーカーが意図せず公開されたり、httpdで構成されたセキュリティ制約がバイパスされたりする可能性があります。
対処方法
製品に対するパッチの公開時期は現在検討中です。
急ぎでパッチが必要な場合は、NECサポートポータル経由でお問いあわせください。
(注意) パッチモジュールは製品保守契約を結んでいただいたお客様に限定して提供させていただいています。
まだ契約がお済みでないお客様は、保守契約締結の後、ダウンロードをお願いいたします。
回避方法
配備されたコンテキストに対応するworkerのマッピング定義(※)を漏れなく行います。
定義対象ファイル
□WebOTX V5の場合
・${INSTALL_ROOT}/WebCont/conf/mod_jk-*.conf-auto
□WebOTX V6~V8の場合
・${INSTANCE_ROOT}/config/WebCont/mod_jk-*.conf*
□WebOTX V9~V11の場合
・${INSTANCE_ROOT}/config/WebCont/mod_jk-*.conf*
または
・${INSTANCE_ROOT}/config/WebCont/uriworkermap.properties*
ただし、ファイル名の最後が"-auto"の場合はドメイン再起動で上書きされるため以下の修正が必要です。
(1) httpd.confからの参照ファイル名から"-auto"を削除します。
ファイル:${INSTANCE_ROOT}/config/WebServer/httpd.conf
修正前:include "~/config/WebCont/mod_jk-~.conf-auto"
修正後:include "~/config/WebCont/mod_jk-~.conf"
(2) (1)に合わせて「mod_jk-~.conf-auto」ファイルをコピーして「mod_jk-~.conf」を作成します。
(3) コピーした「mod_jk-~.conf」に「JkMountFile」の定義があり、そのファイル名が"~/uriworkermap.properties-auto"の場合は"-auto"を削除します。
修正前:JkMountFile "~/config/WebCont/uriworkermap.properties-auto"
修正後:JkMountFile "~/config/WebCont/uriworkermap.properties"
(4) (3)で"-auto"を削除した場合はそれに合わせて"uriworkermap.properties-auto"をコピーして"uriworkermap.properties"を作成します。
(5) Webサーバを再起動すると設定が反映されます。
(6) 以降、アプリケーションの追加配備を行った場合はその都度手動でコンテキストに対応するworkerのマッピング定義(※)を行います。
(※)コンテキストに対応するworkerのマッピング定義
□「mod_jk-*.conf」ファイルの場合
---------------------------------------
JkMount {コンテキストパス} {worker名}
---------------------------------------
例. コンテキストパスが"/abc"でworker名がajp13の場合
---------------------------------------
JkMount "/abc" ajp13
JkMount "/abc/*" ajp13
---------------------------------------
□「uriworkermap.properties」ファイルの場合
---------------------------------------
{コンテキストパス}={worker名}
---------------------------------------
例. コンテキストパスが"/abc"でworker名がajp13の場合
---------------------------------------
/abc=ajp13
/abc/*=ajp13
---------------------------------------
設定後はWebサーバを再起動してください。
関連情報
更新履歴
本サイトについてのご注意
- 弊社製品に関する正確なセキュリティ情報をご提供するよう努力しておりますが、 それぞれの情報におきまして内容を予告なく変更することがありますので、 あらかじめご了承ください。
- 本サイトに掲載した製品には他社の製品も含まれており、 これらの製品の情報につきましては、 他社から提供または公開された情報を基にしております。 最新の情報につきましては製品開発元の情報を参照してください。
- 本サイトは弊社製品のセキュリティ情報の提供を目的としております。 掲載情報に従い対応を行った(あるいは行わなかった)結果につきまして、 弊社では責任を負いかねますのでご了承ください。
セキュリティ問題に関する情報は変化しておりますので、 お客様には常に最新の情報をご確認いただけますようお願い申し上げます。