RHSB-2021-009 Log4Shell - リモートコード実行 - log4j (CVE-2021-44228)

Public Date: December 10, 2021, 02:24
更新 June 16, 2022, 21:12 - Chinese, Simplified 英語 French Korean
Resolved 状態
Critical Impact

Apache Log4j は、Java ベースのアプリケーションのログを記録するライブラリーです。 

Apache Log4j v2 (Log4j のアップグレードバージョン) で不具合が見つかりました。これにより、システムが 攻撃者の Java Naming and Directory Interface™ (JNDI) Lightweight Directory Access Protocol (LDAP) サーバールックアップを使用して、攻撃者が制御する文字列の値をログに記録すると、リモート攻撃者はサーバー上でコードを実行できるようになります。この不具合により、リモート攻撃者は、Apache Log4j v2 を呼び出した Java ベースのアプリケーションと同じ特権を使用して、ターゲットシステムでコードを実行することができます。 

この問題には、セキュリティー上の影響度が「重大な影響」の CVE-2021-44228 が割り当てられました。

以下の製品は、この不具合の影響を受けません。お客様の便宜のため、ここに明示的に記載しています。

  • Red Hat Enterprise Linux

  • Red Hat Advanced Cluster Management for Kubernetes 

  • Red Hat Advanced Cluster Security for Kubernetes

  • Red Hat Ansible Automation Platform (Engine および Tower)

  • Red Hat Certificate System

  • Red Hat Directory Server

  • Red Hat Identity Management

  • Red Hat CloudForms 

  • Red Hat Update Infrastructure

  • Red Hat Satellite

  • Red Hat Ceph Storage

  • Red Hat Gluster Storage

  • Red Hat OpenShift Data Foundation

  • Red Hat OpenStack Platform

  • Red Hat Virtualization

  • Red Hat Single Sign-On

  • Red Hat 3scale API Management

2.0.0 以降 2.15.0 より前までのバージョンの Java ロギングライブラリー Apache Log4j で、不具合が見つかりました。ログメッセージまたはログメッセージパラメーターを制御可能なリモート攻撃者は、JNDI LDAP エンドポイントを介して、サーバー上で任意のコードを実行することができます。詳細は、CVE-2021-44228 を参照してください。

Log4j バージョン 2.10 以降の場合:

  • システムプロパティー log4j2.formatMsgNoLookups または環境変数 LOG4J_FORMAT_MSG_NO_LOOKUPS を true に設定します。

Log4j バージョン 2.7 から 2.14.1 までの場合:

  • すべての PatternLayout パターンを修正して、メッセージコンバーターを %m ではなく %m{nolookups} と指定することができます。

Log4j バージョン 2.0-beta9 から 2.10.0 までの場合

  • クラスパスから JndiLookup クラスを削除します。以下に例を示します。 

zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class



OpenShift 4 および OpenShift Logging で上記の軽減策を適用するには、https://access.redhat.com/solutions/6578421 に記載の手順を実行します。

OpenShift 3.11 で影響を受ける Elasticsearch コンポーネントに軽減策を適用するには、https://access.redhat.com/solutions/6578441 に記載の手順を実行します。

2.0.0 以降 2.15.0 より前までのバージョンの Java ロギングライブラリー Apache Log4j で、不具合が見つかりました。ログメッセージまたはログメッセージパラメーターを制御可能なリモート攻撃者は、JNDI LDAP エンドポイントを介して、サーバー上で任意のコードを実行することができます。

この問題の影響を受けるのは、2.0 から 2.14.1 までの log4j バージョンのみとなります。この不具合は、以下がある場合に悪用されます。

  • プロトコルに関係なく (HTTP、TCP など)、攻撃者が任意のデータを送信できるリモートからアクセス可能なエンドポイント。

  • 攻撃者が制御するデータをログに記録するエンドポイント内のログステートメント。

これまでに開示された CVE-2021-44228 および関連する log4j の脆弱性が、すべてのクラウドサービスに対して評価されました。  影響を受ける可能性のあるものとして識別されたものは、すぐに対処されました。脆弱なコンポーネントの使用と潜在的な影響は、サービスによって異なります。Red Hat は、軽減策 (上記を参照) とパッチを適用し、場合によっては、リスクにタイムリーに対処するため、脆弱なコンポーネントを削除しました。

Red Hat は、これらの脆弱性が Red Hat クラウドサービスに与える潜在的な影響を引き続き監視し、必要に応じてサードパーティーと協力して、サービスの安全性を保証します。  必要に応じて、今後も詳細を報告していきます。

影響を受けるバージョンの Red Hat 製品をご使用のお客様は、エラータが入手可能になり次第、該当製品を更新することが強く推奨されます。お客様には、利用可能な更新を早急に適用したり、適切と思われる軽減策を有効にしたりすることをお勧めします。  

製品

コンポーネント

アドバイザリー/更新

Red Hat CodeReady Studio 12

log4j-core

CodeReady Studio Download

Red Hat Enterprise Application Platform 7

log4j-core

EAP 7.4 パッチ

Red Hat Integration Camel K

log4j-core

RHSA-2021:5130

Red Hat Integration Camel Quarkus

log4j-core

RHSA-2021:5126

Red Hat OpenShift Application Runtimes Vert.X 4

log4j-core

RHSA-2021:5093

Red Hat Fuse 7

log4j-core

RHSA-2021:5134

Red Hat OpenShift 4

hive-container

presto-container

logging-elasticsearch6-container 

RHSA-2021:5108

RHSA-2021:5107

RHSA-2021:5106

RHSA-2021:5183

RHSA-2021:5184

RHSA-2021:5186

RHSA-2021:5148

RHSA-2021:5107

RHSA-2021:5141

RHSA-2021:5106

Red Hat OpenShift 3.11

logging-elasticsearch5-container

RHSA-2021:5094

Red Hat OpenShift Logging

logging-elasticsearch6-container

RHSA-2021:5127

RHSA-2021:5128

RHSA-2021:5129

RHSA-2021:5137

Red Hat Data Grid 8

log4j-core

RHSA-2021:5132

Red Hat AMQ Streams

log4j-core

RHSA-2021:5133

RHSA-2021:5138

Red Hat OpenStack Platform 13

opendaylight

ライフサイクルの終了日

Red Hat Process Automation Manager

log4j-core

RHPAM パッチ


[1] 更新の公開後にアドバイザリー/更新のリンクが追加されます。

以下の脆弱性検出スクリプトを使用すると、現在ご使用のシステムにこの不具合による脆弱性が存在するかどうかを判断できます。正規のスクリプトであることを確認する場合は、GPG 分離署名 もダウンロードします。検証にGPG 署名を使用する方法 と手順は、カスタマーポータルで確認できます。

現在のバージョン: 1.3

さらに、Ansible Playbook は、検出スクリプトを多くのホストで一度に実行するために利用できます。Playbook には、操作を制御する追加の vars ファイルが必要です。Playbookその vars ファイル では、デタッチされた GPG 署名が利用できます。Playbook およびその関連付けられた変数ファイルをダウンロードしたら、vars ファイルを編集してご自分の環境に合わせて調整します。 

以下を指定する必要があります。

detector_path: 検出スクリプトが脆弱なアーカイブについてスキャンするパス。

detector_dir: Playbook は検出スクリプトをリモートホストのこのディレクトリーにコピーします。

detector_run_dir: 検出スクリプトが一時ストレージに使用するパス。


Playbook を実行するには、コマンドラインで 2 つの追加変数を指定する必要があります。

HOSTS: Ansible インベントリーで定義されているように、スキャンするホストまたはグループ。

vars_file: vars ファイルへのパス。

以下に例を示します。

# ansible-playbook -e HOSTS=all -e vars_file=log4j-cve-2021-44228-vars.yml log4j-cve-2021-44228.yml


問: セキュリティー修正または軽減策の適用後に、サービスまたはアプリケーションを再起動する必要はありますか。必要な場合は、どれを再起動するばよいですか。  

答: サービスまたはアプリケーションを再起動することがベストプラクティスであり、推奨されていますが、どれを再起動するかは、アプリケーションのデプロイメントストラテジーによって異なります。以下に例を示します。 

  • Java ベースのアプリケーションでは、セキュリティー修正の適用後にアプリケーションサーバーを再起動する必要があります。


問: Red Hat OpenShift 製品 (OpenShift Logging を含む) では、更新が利用可能になった時点で更新する必要がありますか。 

  1. OpenShift Container Platform および OpenShift Logging の更新プロセスの詳細は、以下のガイドを参照してください。


問: ARO/OSD/ROSA などのサービスには脆弱性がありますか。 

答: いいえ、ありません。理由については、以下に記載されています。 

Apache log4j2 Remote Code Execution (RCE) Vulnerability


問: 上記の Log4j v2 の更新を適用した後も、CVE-2021-45046CVE-2021-45105、および CVE-2021-44832 のセキュリティーエラータのリリースを待つ必要はありますか。

答: いいえ、CVE-2021-45046CVE-2021-45105、および CVE-2021-44832 の新しいリリースを待つ必要はありません。これらの CVE の重大度のレベルは「中程度の影響」になります。製品の Log4J 設定で、コンテキストルックアップ (例: $${ctx:loginId}) でデフォルト以外のパターンレイアウトを使用しない限り (Red Hat 製品ではデフォルトで設定されておらず、すぐに使用できる設定ではない)、これらの問題に対して脆弱ではありません。


問: 一部の Red Hat 製品には Log4j v1 が同梱されています。このページに記載されている更新を行うと、Log4j v1 の脆弱性も修正されますか。

答: Log4j バージョン 1.x は CVE-2021-44228 (Log4Shell) の影響を受けません。Log4j v1.x では、以下で説明されている影響を受けるライブラリーまたはコンポーネントに応じて異なる既知の問題があります。ただし、デフォルト設定で使用する場合の大半は影響を受けません。

  • CVE-2021-4104 (Log4j v1.x JMSAppender) には 中程度 の影響評価があります。Log4j v1.2 は、攻撃者が Log4j 設定への書き込みアクセス権を持っている場合、または特定のオプションが有効化されている JMSAppender を使用するように設定 (デフォルト設定ではない) されている場合は、信頼できないデータのデシリアライゼーションに対して脆弱です。 

  • CVE-2022-23302 (Log4j v1.x JMSSink) には 中程度 の影響評価があります。Log4j v1.x は、信頼できないデータのデシリアライゼーションに対して脆弱です。この不具合は、デフォルトではない JMSSink を使用するように特別に設定されたアプリケーションか、または攻撃者が Log4j 設定への書き込みアクセス権を持つ場合 (JMSSink を攻撃者の JNDI LDAP エンドポイントに追加するため) にのみ影響する点に注意してください。

  • CVE-2022-23305 (Log4j v1.x JDBCAppender) には、重要な影響という重大な影響評価があります。Log4j v1.x の JDBCAppender は、信頼できないデータの SQL インジェクションに対して脆弱です。この問題は、デフォルトではない JDBCAppender を使用するように特別に設定された場合にのみ Log4j v1.x にのみ影響することに注意してください。

  • CVE-2022-23307 (Log4j v1.x Chainsaw) には、重要な影響 という重大度の評価があります。特定のログエントリーの内容がデシリアライズされ、コードの実行を許可する可能性が log4j v1.x chainsaw コンポーネントに不具合が見つかりました。Chainsaw は、log4j のログエントリーを表示するスタンドアロンのグラフィカルユーザーインターフェースです。利用可能な他の手段を使用してログエントリーにアクセスすることで、この不具合を回避できます。

詳細は、個別の CVE ページを参照してください。 


Comments