Open5

Log4j2 の脆弱性情報をメモる

ピン留めされたアイテム
hassaku63hassaku63

この手の脆弱性の扱いについても、java で構成されるアプリケーションの知識についても私は素人なので、他人が参考にする情報としてはあんまりアテにならないものになってる可能性あり。

CVE2021-44228

National Vulnerability Database (NVD) ... https://nvd.nist.gov/vuln/detail/CVE-2021-44228

https://nvd.nist.gov/vuln/detail/CVE-2021-44228

Red hat Customer Portal ... https://access.redhat.com/security/cve/cve-2021-44228

https://access.redhat.com/security/cve/cve-2021-44228

Github Advisory Database ... https://github.com/advisories/GHSA-jfh8-c2jp-5v3q

https://github.com/advisories/GHSA-jfh8-c2jp-5v3q


声明を発表している事例

マイクラ

https://twitter.com/tsukkkkkun/status/1469084657723768832

hassaku63hassaku63

Description

column description
Software Apache Log4j2
Version <=2.14.1

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.

Log4j2 で設定、ログメッセージ、およびパラメータで使用される JDNI (Java Naming and Directory Interface, wikipedia) 機能は "エンドポイント" から保護されない。

"エンドポイント" とは、攻撃者が制御している LDAP や JNDI 関連のエンドポイントのことを指す。

JNDI とは他の外部システムに対するインタフェースを提供するもの、であるらしい。

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.

ログメッセージや、ログパラメータを制御できる攻撃者は、メッセージの Lookup 置換が有効な場合、 LDAP サーバーからロードされた任意のコードを実行することが可能です。

From log4j 2.15.0, this behavior has been disabled by default. In previous releases (>2.10) this behavior can be mitigated by setting system property "log4j2.formatMsgNoLookups" to “true” or by removing the JndiLookup class from the classpath (example: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class).

log4j 2.15.0 からは、この振る舞いはデフォルトで無効化されています。以前のリリース (>2.10) では、システムプロパティ log4j2.formatMsgNoLookups を true に設定するか、クラスパスから JndiLookup クラスを削除することで、この動作を緩和することができます。

例)

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

Java 8u121 (see https://www.oracle.com/java/technologies/javase/8u121-relnotes.html) protects against remote code execution by defaulting "com.sun.jndi.rmi.object.trustURLCodebase" and "com.sun.jndi.cosnaming.object.trustURLCodebase" to "false".

Java 8u121 では、"com.sun.jndi.rmi.object.trustURLCodebase" および "com.sun.jndi.cosnaming.object.trustURLCodebase" をデフォルトで false に設定することで、リモートコードの実行から保護しています。

hassaku63hassaku63

Description

column description
Software Apache Log4j2
Version <=2.14.1

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.

Log4j2 で設定、ログメッセージ、およびパラメータで使用される JDNI (Java Naming and Directory Interface, wikipedia) 機能は "エンドポイント" から保護されない。

"エンドポイント" とは、攻撃者が制御している LDAP や JNDI 関連のエンドポイントのことを指す。

JNDI とは他の外部システムに対するインタフェースを提供するものであり、

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.

From log4j 2.15.0, this behavior has been disabled by default. In previous releases (>2.10) this behavior can be mitigated by setting system property "log4j2.formatMsgNoLookups" to “true” or by removing the JndiLookup class from the classpath (example: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class).

Java 8u121 (see https://www.oracle.com/java/technologies/javase/8u121-relnotes.html) protects against remote code execution by defaulting "com.sun.jndi.rmi.object.trustURLCodebase" and "com.sun.jndi.cosnaming.object.trustURLCodebase" to "false".