【活用ガイド】

JVNDB-2021-005429

Apache Log4j における任意のコードが実行可能な脆弱性

概要

Log4j には JNDI Lookup 機能による外部入力値の検証不備に起因して任意の Java コードを実行可能な脆弱性が存在します。

The Apache Software Foundation が提供する Log4j は、Java ベースのロギングライブラリです。Log4j には、ログに記載された文字列から一部の値を変数として評価する Lookup 機能が実装されています。
その Lookup 機能の内、JNDI Lookup 機能を悪用することにより、ログに含まれる外部の URL もしくは内部パスから Java のクラス情報をデシリアライズして実行してしまう問題(CWE-20, CVE-2021-44228)が発見されました。
これにより、遠隔の攻撃者が細工した文字列を脆弱なシステムのログに記載させ、結果として任意の Java コードをシステムに実行させることが可能です。
CVSS による深刻度 (CVSS とは?)

CVSS v3 による深刻度
基本値: 10.0 (緊急) [NVD値]
  • 攻撃元区分: ネットワーク
  • 攻撃条件の複雑さ: 低
  • 攻撃に必要な特権レベル: 不要
  • 利用者の関与: 不要
  • 影響の想定範囲: 変更あり
  • 機密性への影響(C): 高
  • 完全性への影響(I): 高
  • 可用性への影響(A): 高
CVSS v2 による深刻度
基本値: 9.3 (危険) [NVD値]
  • 攻撃元区分: ネットワーク
  • 攻撃条件の複雑さ: 中
  • 攻撃前の認証要否: 不要
  • 機密性への影響(C): 全面的
  • 完全性への影響(I): 全面的
  • 可用性への影響(A): 全面的
※上記は、CVE-2021-44228 の評価になります。
影響を受けるシステム


Apache Software Foundation
  • Apache Log4j core 2.0-beta9 から 2.12.1 より前のバージョン
  • Apache Log4j 2.13.0 から 2.15.0 より前のバージョン

Log4j 1.x 系については、開発者により、Lookup 機能が含まれておらず外部入力値由来のクラス情報がデシリアライズされないため影響を受けないという指摘がなされています。ただし、Log4j 1.x はすでに開発およびサポートが終了しているため、後継製品への移行を強く推奨します。
想定される影響

遠隔の攻撃者により細工された文字列を Log4j がログに記録することにより、システム上で任意の Java コードが実行される可能性があります。
対策

[アップデートする]
開発者により、本脆弱性を修正した以下のバージョンが提供されています。
開発者が提供する情報をもとに、最新版にアップデートしてください。
なお、本アップデートでは、Log4j の Lookup 機能が削除されており、JNDI へのアクセスがデフォルトで無効化されています。


 * Java 8のユーザ向け修正版
  * Log4j 2.17.1

 * Java 7のユーザ向け修正版
  * Log4j 2.12.4

 * Java 6のユーザ向け修正
  * Log4j 2.3.2

開発者は当初、本脆弱性に対する修正版として 2.15.0 をリリースしていましたが、特定の構成において任意のコード実行が行われる可能性があることが判明し、Lookup 機能を削除した上で JNDI 機能そのものをデフォルトで無効化した 2.16.0 および 2.12.2 が改めてリリースされました。この問題に対しては CVE-2021-45046 が採番されています。

2021年12月18日、開発者は Log4j 2.0-alpha1 から 2.16.0 までのバージョンにおいて、再帰的(self-referential)なLookup を行う設定下において、サービス運用(DoS)が行われる脆弱性が新たに発見されたとして、バージョン 2.17.0 をリリースしました。この脆弱性に対しては CVE-2021-45105 が採番されています。

2021年12月21日、開発者は一連の脆弱性を修正したバージョンとして、Java 6 ユーザ向けに 2.3.1 を、Java 7 ユーザ向けに 2.12.3 をリリースしました。

2021年12月28日、開発者は Log4j2 2.0-beta7 から 2.17.0(2.3.2 および 2.12.4 を除く)において、攻撃者がログ出力設定を変更できる場合に限り任意のコード実行が行われる可能性があるとして、Log4j 2.17.1、2.12.4、2.3.2 をリリースしました。この修正では、JNDI のデータソースを Java プロトコルに制限する変更が行われました。この脆弱性に対しては CVE-2021-44832 が採番されています。

[ワークアラウンドを実施する]
以下の回避策を適用することにより、本脆弱性の悪用を防ぐことが可能です。

 * JndiLookup クラスをクラスパスから除外する
  * 例: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
  * この回避策は CVE-2021-45046 に対しても有効です

 * Log4j を実行する Java 仮想マシンを起動する際に log4j2.formatMsgNoLookups を true に設定する(Log4j 2.10 およびそれ以降のバージョンが対象)
  * 例: -Dlog4j2.formatMsgNoLookups=true
  * この回避策は CVE-2021-45046 に対して有効ではありません

 * 環境変数 LOG4J_FORMAT_MSG_NO_LOOKUPS を true に設定する(Log4j 2.10 およびそれ以降のバージョンが対象)
  * この回避策は CVE-2021-45046 に対して有効ではありません

また、本脆弱性の影響を軽減するため、システムから外部への接続を制限するアクセス制御を実施または強化することも有効です。
ベンダ情報

Apache Software Foundation Sky株式会社 インテル サイボウズ サイレックス・テクノロジー株式会社 シーメンス ジョンソンコントロールズ トレンドマイクロ 横河電機株式会社 株式会社ソリトンシステムズ 三菱電機 東芝 日本電気
  • NEC製品セキュリティ情報 : NV22-001
日立 富士通
CWEによる脆弱性タイプ一覧  CWEとは?

  1. 不適切な入力確認(CWE-20) [その他]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2021-44228
  2. CVE-2021-45046
  3. CVE-2021-45105
参考情報

  1. JVN : JVNVU#96768815
  2. JVN : JVNVU#94360308
  3. JVN : JVNVU#98748974
  4. National Vulnerability Database (NVD) : CVE-2021-44228
  5. National Vulnerability Database (NVD) : CVE-2021-45046
  6. National Vulnerability Database (NVD) : CVE-2021-45105
  7. JPCERT 緊急報告 : JPCERT-AT-2021-0050
  8. US-CERT Vulnerability Note : VU#930724
  9. ICS-CERT ADVISORY : ICSA-22-034-01
  10. 関連文書 : Restrict LDAP access via JNDI #608
  11. 関連文書 : Log4Shell: RCE 0-day exploit found in log4j 2, a popular Java logging package
更新履歴

  • [2021年12月14日]
      掲載
  • [2021年12月16日]
      影響を受けるシステム:内容を更新
      対策:内容を更新
      ベンダ情報:トレンドマイクロ (アラート/アドバイザリ:Apache Log4j の脆弱性(CVE-2021-44228)について) を追加
      共通脆弱性識別子(CVE):CVE-2021-45046 を追加
      参考情報:National Vulnerability Database (NVD) (CVE-2021-45046) を追加
      参考情報:US-CERT Vulnerability Note (VU#930724) を追加
  • [2021年12月17日]
      ベンダ情報:サイボウズ (Apache Log4j ライブラリの脆弱性(CVE-2021-44228)のサイボウズ製品への影響について(2021/12/13)) を追加
  • [2021年12月21日]
      ベンダ情報:シーメンス (Siemens ProductCERT and Siemens CERT) を追加 
      ベンダ情報:シーメンス (SSA-661247: Apache Log4j Vulnerabilities (Log4Shell, CVE-2021-44228, CVE-2021-45046) - Impact to Siemens Products)
      ベンダ情報:シーメンス (SSA-714170: Apache Log4j Vulnerabilities (Log4Shell, CVE-2021-44228, CVE-2021-45046) - Impact to SPPA-T3000s)
      ベンダ情報:シーメンス (SSA-501673: Apache Log4j Denial of Service Vulnerability (CVE-2021-45105) - Impact to Siemens Products)
      ベンダ情報:日立 (hitachi-sec-2021-147) を追加
      ベンダ情報:日立 (hitachi-sec-2021-146) を追加
      ベンダ情報:日立 (hitachi-sec-2021-145) を追加
      対策:内容を更新
      共通脆弱性識別子(CVE):CVE-2021-45105 を追加
      参考情報:National Vulnerability Database (NVD) (CVE-2021-45105) を追加
  • [2021年12月22日]
      ベンダ情報:シーメンス (SSA-397453: Apache Log4j Vulnerabilities (Log4Shell, CVE-2021-44228, CVE-2021-45046) - Impact to Siemens Energy TraceAlertServerPLUS) を追加
      ベンダ情報:インテル (INTEL-SA-00646) を追加
      ベンダ情報:株式会社ソリトンシステムズ (【情報】Apache Log4j 脆弱性の影響について) を追加
  • [2021年12月23日]
      対策:内容を更新
      ベンダ情報:シーメンス (SSA-479842: Apache Log4j Vulnerabilities - Impact to Siemens Energy Sensformer (Platform, Basic and Advanced) を追加
      ベンダ情報:Sky株式会社 (Javaライブラリ「Apache Log4j」の脆弱性について) を追加
  • [2021年12月24日]
      CVSS による深刻度:内容を更新
  • [2021年12月27日]
      対策:内容を更新
  • [2021年12月28日]
      参考情報:JVN (JVNVU#94360308) を追加
  • [2022年01月04日]
      ベンダ情報:日立 (hitachi-sec-2021-315) を追加
      ベンダ情報:日立 (hitachi-sec-2021-225) を追加
      ベンダ情報:日立 (hitachi-sec-2021-226) を追加
  • [2022年01月05日]
      対策:内容を更新
      ベンダ情報:シーメンス (SSA-784507: Apache Log4j Vulnerability (CVE-2021-44832) via JDBC Appender - Impact to Siemens Products) を追加
  • [2022年01月06日]
      ベンダ情報:富士通 (Apache Log4jにおける任意のコードが実行可能な脆弱性(CVE-2021-44228)) を追加
  • [2022年01月11日]
       ベンダ情報:日立 (HIRT-PUB21001:Apache Log4jの脆弱性) を追加
  • [2022年01月14日]
      ベンダ情報:サイレックス・テクノロジー株式会社 (Apache Log4j脆弱性に対する各製品の影響について) を追加
  • [2022年01月27日]
      ベンダ情報:日本電気 (NV22-001) を追加
  • [2022年02月08日]
      ベンダ情報:ジョンソンコントロールズ (JCI‐PSA‐2022‐01) を追加
      参考情報:ICS-CERT ADVISORY (ICSA-22-034-01) を追加
  • [2022年02月14日]
      ベンダ情報:シーメンス (SSA-978692: Apache Log4j Vulnerabilities - Impact to Siemens Energy Omnivise Fleet Management) を追加
      参考情報:JVN (JVNVU#98748974) を追加
  • [2022年02月15日]
      ベンダ情報:東芝 (MAGNIA シリーズ) を追加
      ベンダ情報:東芝 (PowerChute Business Edition v10.0 における Apache Log4j の脆弱性対策について (CVE-2021-44228)) を追加
      ベンダ情報:東芝 (ダウンロード モジュール情報) を追加
  • [2022年02月21日]
      ベンダ情報:横河電機株式会社 (YSAR-22-0003: Apache Log4j 脆弱性の影響を受ける横河製品) を追加
  • [2022年03月30日]
       ベンダ情報:三菱電機 (Apache Log4jにおける複数の脆弱性(Log4shell)の影響について) を追加