Apple開発チームが、「Apache Log4j」の最新版v2.17.0を公開しました。
先日より話題となっているLog4jの脆弱性はv2.16.0で修正されているはずでしたが、2.16.0にもDoS脆弱性(CVE-2021-45105)が発見され、これに対処するものとなっています。
Apacheによると、Log4jのバージョン2.0-alpha1から2.16.0には、自己参照による制御不能な再帰から保護されていないとう脆弱性が存在します。設定でデフォルト以外のコンテキストルックアップを含むパターンレイアウト(例: $${ctx:loginId})を使用すると、スレッドコンテキストマップ(MDC)の入力データを制御できる攻撃者は、再帰的なルックアップを含む不正な入力データを作成し、StackOverflowErrorを発生させてプロセスを終了させることができるとのこと。このような手法はDoS(Denial of Service))攻撃として知られています。
この問題はLog4j 1.xには影響せず、Log4j 2.xを使用している場合、Java 8以降のユーザーは2.17.0に移行することで問題を回避できます。
または設定を変更することで問題を緩和することも可能です。
- ロギング設定のパターンレイアウトで、${ctx:loginId} や $${ctx:loginId} などの コンテキストルックアップをThread Context Mapパターン (%X, %mdc, %MDC)で置き換える。
- それができない場合、HTTPヘッダやユーザ入力などアプリケーションの外部ソースに由来する${ctx:loginId}や$${ctx:loginId}などのコンテキストルックアップへの参照を設定から削除する。
この脆弱性の影響を受けるのは、log4j-core JARファイルのみで、log4j-core JARファイルを使用せず、log4j-api JARを使用している場合は影響がないとのことです。
詳細はこちらで確認可能です。
[via [Log4Shell] 3rd Vulnerability on Apache Log4j Utility Found - Cyber Kendra]