Remote Code Execution in Log4j
[CVE-2021-44228]
[CVE-2021-45046]
[CVE-2021-45105]
[CVE-2021-44832]
JST 2022/1/10 7:12 更新:
Yellowfinはlog4j 2.16 に対する既知の脆弱性(CVE-2021-45105 と CVE-2021-44832)を認識しています。Yellowfinのデフォルトのログ設定はlog4j2.xmlファイルを変更していない限り、どちらに対しても脆弱ではありません。log4jライブラリは、将来のリリースでアップグレードされる予定ですがどのリリースでアップグレードするかは未定です。
JST 2021/12/22 13:00 更新:
対策オプション2の内容を更新いたしました。
JST 2021/12/21 10:00 更新:
パッチを当てたバージョン8.0.10.4、9.4.2.1、9.5.1.1、9.6.2.1がDockerのページに追加されました。以下の記事を更新しておりますので参照ください。
JST 2021/12/20 17:40 更新:
Yellowfin は新たに発見された log4j の脆弱性(CVE-2021-45105)を認識しています。この脆弱性の最初のレビューではYellowfin の log4j2 の構成には脆弱なルックアップタイプが含まれていないことが示されています。このようなコードの配慮があるにもかかわらず、Yellowfinに対してこれが悪用できるかどうかを判断するためのテストが進行中です。
今回の脆弱性は以前に報告された以下の脆弱性よりも低い評価となっており、現時点では緊急パッチを公開する予定はありません。今後も状況を注視し、この脆弱性については将来のパッチリリースを検討する予定です。
JST 2021/12/17 13:56 更新:
V9.6、V9.5、V9.4に脆弱性対応した新たなパッチを公開しました。リンクについては、以下の「対策オプション1」のセクションを参照してください。現在、影響を受けた古いバージョンのV8に対するパッチのリリースを行っており、こちらにも追加される予定です。
JST 2021/12/15 18:21 更新:
Yellowfinのバージョン9.7と8.0.10の脆弱性に対応したパッチが公開されました。これらのパッチは、更新されたlog4j2.16ライブラリを使用しています。更新されたリンクと修正のアドバイスについては、以下の投稿をご覧ください。このパッチを使用することを強くお勧めしますが、それが不可能な場合は、他の(新しい)修復方法を使用してください。
現在、以前のバージョンに対するパッチのリリースに取り組んでおり、入手可能になり次第、以下に追加します。続報をお待ちください。
JST 2021/12/15 12:31 更新:
log4j2.15も悪用可能であることを示す追加情報が明らかになりました。現在、最新のYFリリースに更新されたlog4j2.16ライブラリをパッチする作業を行っています。今後のアップデートをお待ちください。
JST 2021/12/14 14:45 更新:
継続的なテストにより、Yellowfinソフトウェアがlog4jの脆弱性に対して脆弱であるシナリオが明らかになりました。以下の改善策を早急に実施してください。
2.16.0より前のバージョンのLog4j 2.xは、いくつかの状況でリモートコード実行(RCE)につながる可能性のある重要な脆弱性の影響を受けます。この問題は、2020年12月以前のリリースのYellowfinソフトウェアには影響しませんが、より最近のリリースには影響します。
影響を受けるリリース:
9シリーズ:9.4.0以降
8シリーズ:8.0.8以降
v7とv6のリリースは、手動でLog4j2にアップグレードしていない限り、影響を受けません。
以下の情報は、お客様のセットアップに関わらず、すべてのお客様に提供されます。この脆弱性は深刻であるため、システムを完全に保護するために、Yellowfinのパッチ適用版、または他の2つの修復オプションのいずれかを適用することを強くお勧めします。
脆弱性の詳細
公式CVEより:
Apache Log4j2 <=2.14.1 設定、ログメッセージ、パラメータに使用される JNDI 機能は、攻撃者が制御する LDAP やその他の JNDI 関連のエンドポイントから保護されません。ログメッセージやログメッセージのパラメーターを制御できる攻撃者は、メッセージのルックアップ置換が有効な場合、LDAP サーバーからロードされた任意のコードを実行することができます。
原文:
Apache Log4j2 <=2.14.1 JNDI features used in configuration, log messages, and parameters do not protect against attacker controlled LDAP and other JNDI related endpoints. An attacker who can control log messages or log message parameters can execute arbitrary code loaded from LDAP Servers when message lookup substitution is enabled.
Yellowfin のバージョン 8.0.8 から 8.0.10.1、および Yellowfin 9.4 から 9.7 には、影響を受ける log4j 2.13.3 が搭載されています。
対策オプション1:パッチのインストール
影響を受けないバージョンのlog4j(log4j2 2.16.0)を使用するYellowfin 8および9のパッチをリリースしました。
- バージョン 9.7.0.3(9.7.0 - build 20211215)(ChangeLogs)
- まずはV9.7のパッチの適用を検討し、それが困難な場合は以下のバージョンに対するパッチを使用できます。限定公開としておりますので必要な場合はサポートチームまでお問い合わせください。
- バージョン 9.6.2.1(9.6.2 - build 20211217)
- バージョン 9.5.1.1(9.5.1 - build 20211217)
- バージョン 9.4.2.1(9.4.2 - build 20211217)
- バージョン 8.0.10.4(8.0.10 - build 20211215)(ChangeLogs)
Yellowfin Docker: 9.7.0.3, 8.0.10.4, 9.4.2.1, 9.5.1.1, 9.6.2.1 イメージの更新:
https://hub.docker.com/r/yellowfinbi/yellowfin-app-only
対策オプション2:既存のYellowfinインスタンスでlog4jをアップグレードする
パッチとは無関係にYellowfinのlog4jをアップグレードすることが可能です。log4jのウェブサイトからlog4j 2.17.xのバイナリディストリビューションをダウンロードします。この修復オプションは、脆弱性の影響を受けるYellowfinのすべてのバージョンで機能します。
配布用ZIPファイルから以下のファイルを解凍し、Yellowfin/appserver/webapps/ROOT/WEB-INF/libフォルダにコピーします:
- log4j-1.2-api-2.17.x.jar
- log4j-api-2.17.x.jar
- log4j-core-2.17.x.jar
- log4j-web-2.17.x.jar
また、フォルダ内の既存のlog4jライブラリを削除する必要があります。これらのファイルは同じ名前を持っていますが、異なるバージョン番号を持っています。バージョン2.13.3または2.15.0のいずれかです。既存のファイルを削除しないと、システムが起動しなかったり、悪意ある情報の搾取に対して脆弱性が残ったりする可能性があります。
log4jのライブラリを交換したら、Yellowfinを再起動します。
Yellowfinのパッチとは別にYellowfinのlog4jライブラリをアップグレードすると、将来のアップグレードができなくなる可能性があります。アップグレードを行う際には、アップグレード前の古いライブラリに戻すことが必要になる場合があります。(その場合、アップグレードは、アップグレードプロセスの一部としてlog4jの新バージョンを配信します)。
対策オプション3:log4jからJNDIハンドラクラスを削除する
脆弱性のあるバージョンの log4j から、脆弱性の原因となる内部コードを削除することが可能です。この内部コードは、log4j-core-2.13.3.jarファイル内のJndiLookup.classに存在します。
以下のコマンドをクラスパスから実行して、ライブラリからコードを削除します:
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
クラスをライブラリから削除したら、Yellowfinを再起動して変更を反映させます。
この脆弱性から保護するために、直ちに修復オプションのいずれかを実行することをお勧めします。
ご不明な点などございましたら、サポートチームまでお問い合わせください。