2021/12/22 更新
https://www.ipa.go.jp/security/ciadr/vul/alert20211213.html
IPAのサイトにて、以前の暫定的な回避策では不十分であることが明らかになったと掲載されておりますので、本記事に記載しております「暫定的な対処方法」では不十分な対策となります。
セキュリティ情報 - Log4j2の重大な脆弱性について【アップデート(2021/12/22)】の記事をご参照いただき、上記記事に掲載しております対策を実施ください。
2021/12/17 更新
本記事には脆弱性に対する暫定的な対処方法を記載しております。暫定的な対処方法ではなく、完全な対処法として新規記事を作成致しましたので、以下の記事をご参照ください。Yellowfinをバージョンアップせず、log4jのライブラリを「2.16.0」へアップデートする方法を記載しております。
セキュリティ情報 - Log4j2の重大な脆弱性について【アップデート(2021/12/17)】
2021/12/15 更新
本脆弱性ですが、log4j「2.15.0」についても影響受けることがわかったため、log4j「2.16.0」がリリースされました。
https://www.ipa.go.jp/security/ciadr/vul/alert20211213.html
上記脆弱性に対応した下記のバージョン(ビルド)をリリースいたしました。(log4jのバージョンが「2.16.0」へアップデートされたバージョンとなります。)
- バージョン8: v8.0.10 Build20211215(ChangeLogs)
- バージョン9: v9.7.0 Build20211215(ChangeLogs)
こちらからアップデートキットをダウンロードいただき、アップデートください。または、以下に記載しております暫定的な対処方法をご検討ください。
(ChangeLogsおよびダウンロードサイトの閲覧にはサポートサイトへのログインが必要となります。)
2021/12/14 更新
本脆弱性に対応した下記のバージョン(ビルド)をリリースいたしました。(log4jのバージョンが「2.15.0」へアップデートされたバージョンとなります。)
- バージョン8: v8.0.10Build20211214(ChangeLogs)
- バージョン9: v9.7.0Build20211213(ChangeLogs)
こちらからアップデートキットをダウンロードいただき、アップデートください。または、以下に記載しております暫定的な対処方法をご検討ください。
(ChangeLogsおよびダウンロードサイトの閲覧にはサポートサイトへのログインが必要となります。)
Log4j におけるリモートコードの実行 [CVE-2021-44228]について
Log4j 2.x の 2.15.0 より前のバージョンには、いくつかの状況下でリモートコード実行 (RCE) が可能になるクリティカルな脆弱性があります。 この脆弱性を認識しており、このライブラリを最新の脆弱性のないバージョンにアップグレードするバージョン(ビルド)を提供するように努めます。
この脆弱性は、次のような場合に成し遂げられます。
- log4jの実装でメッセージルックアップの置換が有効になっている(デフォルトの動作)。
- 攻撃者がログメッセージやパラメータを何らかの方法で制御できる。
- 攻撃者は、アプリケーションに関連するLDAPまたはJNDI関連のエンドポイントを制御します。
この脆弱性は非常に重大なものであるため、上記リストに掲載されている環境は脆弱であると考えられます。また、影響を受けるYellowfinのバージョンは下記となります。
・影響を受けるLog4jのバージョン:Apache Log4j 2.15.0より前の2系のバージョン
参考:https://www.ipa.go.jp/security/ciadr/vul/alert20211213.html
・影響を受けるYellowfinのバージョン:v8.0.8 および v9.4以降
上記Yellowfinのバージョン以降には、Log4jのバージョン「2.13.3」がインクルードされています
暫定的な対処方法:
log4jプロジェクトのGitHub勧告で提案されている設定変更を導入する必要があります。 このアドバイスは、メッセージ内で見つかったコードを実行するフォーマットメッセージの検索を無効にするというものです。この設定を実施する場合、Yellowfinのサービス再起動が必要になります。また、この設定は、Yellowfinの起動時にJAVA_OPTSを介して発行されます。
設定は、<Yellowfinインストールディレクトリ>/appserver/bin/catalina.(bat|sh)ファイルに追加するか、もしくはTomcatが推奨するように、同じディレクトリ内のsetenv.(bat|sh)ファイルに追加することができます。 catalina.bat|shへの設定で問題はございませんが、もしsetenv.bat|shへ設定を実施される場合は、Yellowfinにはsetenv.(bat|sh)は含まれておりませんので、Tomcatのドキュメントなどを参考にsetenv.(bat|sh)作成ください。
以下の行を追加すると、本事象の改修を含んだバージョン(ビルド)をリリースするまで、この脆弱性の問題から保護します。
■Linux環境
# Linux (sh) format to remediate CVE-2021-44228 - RCE in Log4j2
JAVA_OPTS="$JAVA_OPTS -Dlog4j2.formatMsgNoLookups=true"
■Windows環境(bat起動の場合)
rem Windows format (bat) to remediate CVE-2021-44228 - RCE in Log4j2
set JAVA_OPTS=%JAVA_OPTS% -Dlog4j2.formatMsgNoLookups=true
■Windows環境(Windows サービス起動の場合)
Windows サービスの場合はBATファイルを経由しませんのでTomcatのサービス管理に追加します。
- Yellowfin Windows サービスを追加・削除・設定する方法の記事内の「既存のTomcat Windows サービスの設定を管理する場合」を参照いただき、Tomcatのサービス管理画面(ポップアップ)を表示します。
- "Java"タブに移動して、"Java Options"に下記の一行を追加します。
-Dlog4j2.formatMsgNoLookups=true
上記設定変更を行ってもYellowfinの機能へ影響はございませんので、暫定的な保護手段としてこの変更を行うことを強く推奨いたします。
ご不明な点などございましたら、サポートチームまでお問い合わせください。