JPCERT-AT-2021-0050
JPCERT/CC
2021-12-11(新規)
2022-01-04(更新)
JavaベースのオープンソースのロギングライブラリのApache Log4jには、任意のコード実行の脆弱性(CVE-2021-44228)があります。Apache Log4jが動作するサーバーにおいて、遠隔の第三者が本脆弱性を悪用する細工したデータを送信することで、任意のコードを実行する可能性があります。
Apache Log4j Security Vulnerabilities
Fixed in Log4j 2.15.0
https://logging.apache.org/log4j/2.x/security.html
Apache Log4jにはLookupと呼ばれる機能があり、ログとして記録された文字列から、一部の文字列を変数として置換します。その内、JNDI Lookup機能が悪用されると、遠隔の第三者が細工した文字列を送信し、Log4jがログとして記録することで、Log4jはLookupにより指定された通信先もしくは内部パスからjava classファイルを読み込み実行し、結果として任意のコードが実行される可能性があります。
2021年12月11日現在、JPCERT/CCは、本脆弱性を悪用する実証コードが公開されていること、及び国内にて本脆弱性の悪用を試みる通信を確認しています。Apache Log4jを利用している場合には、The Apache Software Foundationなどが提供する最新の情報を確認し、バージョンアップや回避策の適用などの実施を検討することを推奨します。
また、Apache Log4jを使用するアプリケーションやソフトウェアなどで、今後セキュリティアップデートが公開される可能性があります。関連する情報を注視し、必要な対策や対応の実施をご検討ください。
- Apache Log4j-core 2.15.0より前の2系のバージョン
なお、すでにEnd of Lifeを迎えているApache Log4j 1系のバージョンは、Lookup機能が含まれておらず、JMS Appenderが有効でもクラス情報がデシリアライズされないため影響を受けないとの情報を確認しています。
また、影響を受けるバージョンや条件に関する情報が変更あるいは更新される可能性や、Apache Log4jを使用するアプリケーションやソフトウェアの開発元などから情報が公開される可能性もあるため、最新の情報は各組織から提供される関連情報をご確認ください。
- Apache Log4j 2.15.0
使用するアプリケーションやソフトウェアなどについて関連情報を注視し、本脆弱性の影響を受けることが判明した場合も、速やかにアップデートなどの対応を行うことを推奨します。
また、すでに本脆弱性の悪用を試みる通信が確認されていることから、対策の適用実施とあわせて、不審なファイル及びプロセスの有無や、通信ログ等を確認し、攻撃の有無を確認することを推奨します。
Log4jバージョン2.10及びそれ以降
- 次のいずれかを実施する
(1)Log4jを実行するJava仮想マシンを起動時に「log4j2.formatMsgNoLookups」というJVMフラグオプションを「true」に指定する 例: -Dlog4j2.formatMsgNoLookups=true
(2)環境変数「LOG4J_FORMAT_MSG_NO_LOOKUPS」を「true」に設定する
Log4jバージョン2.10より前
- JndiLookupクラスをクラスパスから削除する
また、本脆弱性を悪用する攻撃の影響を軽減するため、システムから外部への接続を制限するための可能な限りのアクセス制御の見直しや強化もご検討ください。
apache / logging-log4j2
Restrict LDAP access via JNDI #608
https://github.com/apache/logging-log4j2/pull/608
The Apache Software Foundation
Lookups
https://logging.apache.org/log4j/2.x/manual/lookups.html
LunaSec
Log4Shell: RCE 0-day exploit found in log4j2, a popular Java logging package
https://www.lunasec.io/docs/blog/log4j-zero-day/
SANS ISC InfoSec Forums
RCE in log4j, Log4Shell, or how things can get bad quickly
https://isc.sans.edu/forums/diary/RCE+in+log4j+Log4Shell+or+how+things+can+get+bad+quickly/28120/
BlueTeam CheatSheet * Log4Shell*
https://gist.github.com/SwitHak/b66db3a06c2955a9cb71a8718970c592
今回の件につきまして提供いただける情報がございましたら、JPCERT/CCまでご連絡ください。
2021-12-13 「II. 対象」、「IV. 回避策」、「V. 参考情報」の一部記載の追記・修正
2021-12-15 「III. 対策」、「IV. 回避策」の追記
2021-12-20 「I. 概要」、「III. 対策」、「V. 参考情報」の追記
2021-12-28 「I. 概要」、「III. 対策」、「V. 参考情報」の追記
2022-01-04 「I. 概要」、「III. 対策」の追記、2021年12月20日追記内容、2021年12月28日追記内容の修正
一般社団法人JPCERTコーディネーションセンター(JPCERT/CC)
早期警戒グループ
Email:ew-info@jpcert.or.jp
JPCERT/CC
2021-12-11(新規)
2022-01-04(更新)
I. 概要
更新: 2022年1月4日記載
現時点で不明な点もあることから、今後の動向次第で下記掲載内容を修正、更新する予定がありますので、関連情報への注視のほか、本注意喚起の更新内容も逐次ご確認ください。
次の更新を行いました。詳細は「III. 対策」を参照してください。
- Apache Log4jのバージョン2.17.1(Java 8以降のユーザー向け)、2.12.4(Java 7のユーザー向け)及び2.3.2(Java 6のユーザー向け)が公開されました
次の更新を行いました。詳細は「III. 対策」を参照してください。
- Apache Log4jのバージョン2.17.1(Java 8以降のユーザー向け)、2.12.4(Java 7のユーザー向け)及び2.3.2(Java 6のユーザー向け)が公開されました
JavaベースのオープンソースのロギングライブラリのApache Log4jには、任意のコード実行の脆弱性(CVE-2021-44228)があります。Apache Log4jが動作するサーバーにおいて、遠隔の第三者が本脆弱性を悪用する細工したデータを送信することで、任意のコードを実行する可能性があります。
Apache Log4j Security Vulnerabilities
Fixed in Log4j 2.15.0
https://logging.apache.org/log4j/2.x/security.html
Apache Log4jにはLookupと呼ばれる機能があり、ログとして記録された文字列から、一部の文字列を変数として置換します。その内、JNDI Lookup機能が悪用されると、遠隔の第三者が細工した文字列を送信し、Log4jがログとして記録することで、Log4jはLookupにより指定された通信先もしくは内部パスからjava classファイルを読み込み実行し、結果として任意のコードが実行される可能性があります。
2021年12月11日現在、JPCERT/CCは、本脆弱性を悪用する実証コードが公開されていること、及び国内にて本脆弱性の悪用を試みる通信を確認しています。Apache Log4jを利用している場合には、The Apache Software Foundationなどが提供する最新の情報を確認し、バージョンアップや回避策の適用などの実施を検討することを推奨します。
また、Apache Log4jを使用するアプリケーションやソフトウェアなどで、今後セキュリティアップデートが公開される可能性があります。関連する情報を注視し、必要な対策や対応の実施をご検討ください。
II. 対象
対象となるバージョンは次のとおりです。- Apache Log4j-core 2.15.0より前の2系のバージョン
なお、すでにEnd of Lifeを迎えているApache Log4j 1系のバージョンは、Lookup機能が含まれておらず、JMS Appenderが有効でもクラス情報がデシリアライズされないため影響を受けないとの情報を確認しています。
また、影響を受けるバージョンや条件に関する情報が変更あるいは更新される可能性や、Apache Log4jを使用するアプリケーションやソフトウェアの開発元などから情報が公開される可能性もあるため、最新の情報は各組織から提供される関連情報をご確認ください。
更新: 2021年12月13日追記
Apache Log4j 1系のバージョンについては、第三者が本脆弱性を悪用するためにLog4jの設定ファイルを変更することができれば影響を受けるとの情報が公開されていますが、攻撃を行うためには何らかの方法で事前にシステムに不正にアクセスする必要があり、遠隔からの脆弱性を悪用した攻撃の影響は受けません。
Restrict LDAP access via JNDI #608 Comment
https://github.com/apache/logging-log4j2/pull/608#issuecomment-991730650
Restrict LDAP access via JNDI #608 Comment
https://github.com/apache/logging-log4j2/pull/608#issuecomment-991730650
III. 対策
The Apache Software Foundationから本脆弱性を修正したバージョンが公開されています。速やかな対策の適用実施をご検討ください。次のバージョン以降では、Lookup機能がデフォルトでは無効になりました。- Apache Log4j 2.15.0
使用するアプリケーションやソフトウェアなどについて関連情報を注視し、本脆弱性の影響を受けることが判明した場合も、速やかにアップデートなどの対応を行うことを推奨します。
また、すでに本脆弱性の悪用を試みる通信が確認されていることから、対策の適用実施とあわせて、不審なファイル及びプロセスの有無や、通信ログ等を確認し、攻撃の有無を確認することを推奨します。
更新: 2021年12月15日追記
The Apache Software Foundationは、Apache Log4jのバージョン2.16.0(Java 8以降のユーザー向け)および2.12.2(Java 7のユーザー向け)を公開しました。
特定の構成において不正なJNDI検索パターンを入力値とする場合にサービス運用妨害(DoS)が生じる可能性があることが判明し、Message Lookup機能が削除され、JNDIへのアクセスがデフォルトで無効になりました。この問題にはCVE-2021-45046が採番されています。
Apache Log4j Security Vulnerabilities
Fixed in Log4j 2.12.2 (Java 7) and Log4j 2.16.0 (Java 8)
https://logging.apache.org/log4j/2.x/security.html#log4j-2.16.0
任意のコード実行の脆弱性(CVE-2021-44228)への対策に加え、サービス運用妨害攻撃の脆弱性(CVE-2021-45046)などのリスクに対応するため、2.16.0または2.12.2へのアップデートを推奨します。
特定の構成において不正なJNDI検索パターンを入力値とする場合にサービス運用妨害(DoS)が生じる可能性があることが判明し、Message Lookup機能が削除され、JNDIへのアクセスがデフォルトで無効になりました。この問題にはCVE-2021-45046が採番されています。
Apache Log4j Security Vulnerabilities
Fixed in Log4j 2.12.2 (Java 7) and Log4j 2.16.0 (Java 8)
https://logging.apache.org/log4j/2.x/security.html#log4j-2.16.0
任意のコード実行の脆弱性(CVE-2021-44228)への対策に加え、サービス運用妨害攻撃の脆弱性(CVE-2021-45046)などのリスクに対応するため、2.16.0または2.12.2へのアップデートを推奨します。
更新: 2021年12月20日追記
CVE-2021-45046の影響について、一部の環境では任意のコード実行などが可能であるとの情報が公開されています。
更新: 2021年12月20日追記
2021年12月18日(現地時間)、The Apache Software Foundationは、Apache Log4jのバージョン2.17.0(Java 8以降のユーザー向け)を公開しました。
自己参照による制御不能な再帰から保護されていないことに起因し、Log4jの設定によっては影響を受けるサービス運用妨害攻撃の脆弱性(CVE-2021-45105)が修正されています。
Apache Log4j Security Vulnerabilities
Fixed in Log4j 2.17.0 (Java 8)
https://logging.apache.org/log4j/2.x/security.html#log4j-2.17.0
自己参照による制御不能な再帰から保護されていないことに起因し、Log4jの設定によっては影響を受けるサービス運用妨害攻撃の脆弱性(CVE-2021-45105)が修正されています。
Apache Log4j Security Vulnerabilities
Fixed in Log4j 2.17.0 (Java 8)
https://logging.apache.org/log4j/2.x/security.html#log4j-2.17.0
更新: 2021年12月28日追記
2021年12月21日(現地時間)、The Apache Software Foundationは、Apache Log4jのバージョン2.3.1(Java 6のユーザー向け)及び2.12.3(Java 7のユーザー向け)を公開しました。
Apache Log4j Security Vulnerabilities
Fixed in Log4j 2.17.0 (Java 8), 2.12.3 (Java 7) and 2.3.1 (Java 6)
https://logging.apache.org/log4j/2.x/security.html#log4j-2.17.0
Apache Log4j Security Vulnerabilities
Fixed in Log4j 2.17.0 (Java 8), 2.12.3 (Java 7) and 2.3.1 (Java 6)
https://logging.apache.org/log4j/2.x/security.html#log4j-2.17.0
更新: 2022年1月4日追記
2021年12月28日(現地時間)、The Apache Software Foundationは、Apache Log4jの2.17.1(Java 8以降のユーザー向け)、2.12.4(Java 7のユーザー向け)及び2.3.2(Java 6のユーザー向け)を公開しました。
Apache Log4j Security Vulnerabilities
Fixed in Log4j 2.17.1 (Java 8), 2.12.4 (Java 7) and 2.3.2 (Java 6)
https://logging.apache.org/log4j/2.x/security.html#log4j-2.17.1
Apache Log4j Security Vulnerabilities
Fixed in Log4j 2.17.1 (Java 8), 2.12.4 (Java 7) and 2.3.2 (Java 6)
https://logging.apache.org/log4j/2.x/security.html#log4j-2.17.1
IV. 回避策
The Apache Software Foundationから、Log4jのバージョンに応じた回避策に関する情報が公開されています。更新: 2021年12月15日追記
The Apache Software Foundationより、一部の回避策は、特定の手法を用いた攻撃を回避するには不十分であることが判明したと明らかにし、有効な回避策として、JndiLookup.classをクラスパスから削除する回避策の実施を呼びかけています。
Apache Log4j Security Vulnerabilities
Fixed in Log4j 2.12.2 and Log4j 2.16.0
https://logging.apache.org/log4j/2.x/security.html
Apache Log4j Security Vulnerabilities
Fixed in Log4j 2.12.2 and Log4j 2.16.0
https://logging.apache.org/log4j/2.x/security.html
Log4jバージョン2.10及びそれ以降
- 次のいずれかを実施する
(1)Log4jを実行するJava仮想マシンを起動時に「log4j2.formatMsgNoLookups」というJVMフラグオプションを「true」に指定する 例: -Dlog4j2.formatMsgNoLookups=true
(2)環境変数「LOG4J_FORMAT_MSG_NO_LOOKUPS」を「true」に設定する
Log4jバージョン2.10より前
- JndiLookupクラスをクラスパスから削除する
また、本脆弱性を悪用する攻撃の影響を軽減するため、システムから外部への接続を制限するための可能な限りのアクセス制御の見直しや強化もご検討ください。
V. 参考情報
apache / logging-log4j2
Restrict LDAP access via JNDI #608
https://github.com/apache/logging-log4j2/pull/608
The Apache Software Foundation
Lookups
https://logging.apache.org/log4j/2.x/manual/lookups.html
LunaSec
Log4Shell: RCE 0-day exploit found in log4j2, a popular Java logging package
https://www.lunasec.io/docs/blog/log4j-zero-day/
SANS ISC InfoSec Forums
RCE in log4j, Log4Shell, or how things can get bad quickly
https://isc.sans.edu/forums/diary/RCE+in+log4j+Log4Shell+or+how+things+can+get+bad+quickly/28120/
BlueTeam CheatSheet * Log4Shell*
https://gist.github.com/SwitHak/b66db3a06c2955a9cb71a8718970c592
更新: 2021年12月13日追記
Japan Vulnerability Notes JVNVU#96768815
Apache Log4jにおける任意のコードが実行可能な脆弱性
https://jvn.jp/vu/JVNVU96768815/
Apache Log4jにおける任意のコードが実行可能な脆弱性
https://jvn.jp/vu/JVNVU96768815/
更新: 2021年12月20日追記
JPCERT/CC Eyes
Apache Log4j2のRCE脆弱性(CVE-2021-44228)を狙う攻撃観測
https://blogs.jpcert.or.jp/ja/2021/12/log4j-cve-2021-44228.html
Apache Log4j2のRCE脆弱性(CVE-2021-44228)を狙う攻撃観測
https://blogs.jpcert.or.jp/ja/2021/12/log4j-cve-2021-44228.html
更新: 2021年12月28日追記
JPCERT/CC CyberNewsFlash
2021年12月に公表されたLog4jの脆弱性について
https://www.jpcert.or.jp/newsflash/2021122401.html
2021年12月に公表されたLog4jの脆弱性について
https://www.jpcert.or.jp/newsflash/2021122401.html
今回の件につきまして提供いただける情報がございましたら、JPCERT/CCまでご連絡ください。
改訂履歴
2021-12-11 初版2021-12-13 「II. 対象」、「IV. 回避策」、「V. 参考情報」の一部記載の追記・修正
2021-12-15 「III. 対策」、「IV. 回避策」の追記
2021-12-20 「I. 概要」、「III. 対策」、「V. 参考情報」の追記
2021-12-28 「I. 概要」、「III. 対策」、「V. 参考情報」の追記
2022-01-04 「I. 概要」、「III. 対策」の追記、2021年12月20日追記内容、2021年12月28日追記内容の修正
一般社団法人JPCERTコーディネーションセンター(JPCERT/CC)
早期警戒グループ
Email:ew-info@jpcert.or.jp