[対策あり]Apache Log4jで新たな脆弱性!一定の条件でDoS攻撃が可能に(CVE-2021-45105)

サーバー

Apache Log4j 2.16.0でLog4Shellの脆弱性(CVE-2021-45046)が完全に修正されず、一定の条件下でDoS攻撃が可能だったことが明らかになりました。この脆弱性にはApache Log4j 2.17.0(最新バージョン)へのアップデートで対応可能です。

(2021/12/21)Apache Log4jのバージョンを確認するを追加

4つ目の脆弱性が発見(CVE-2021-44832)

▼以下の記事を参照してください。

情報ソース

脆弱性の詳細

Apache Log4jでDoS攻撃可能な脆弱性(CVE-2021-45046)がApache Log4j 2.16.0で完全に修正されず一定の条件下でDoS攻撃が可能であることが明らかになりました。

ログ設定でコンテキストルックアップを含むデフォルト以外のパターンレイアウトを使用している場合、攻撃者がLookup機能の再帰的な処理を無限に行う入力データを作成し、結果的にDoS攻撃を引き起こす可能性があります。

CVE-2021-45105はlog4j-core.jarファイルを使用しているサーバーが対象です。log4j-api.jarを使用している場合の影響はありません。

対策

解決方法

Apache Log4jのバージョンを確認する

▼以下の記事を参照して下さい。

【対策1】Log4jを最新バージョンにアップデートする

修正パッチが適用されたバージョン2.17.0(Java 8以降用)、2.12.3(Java 7用)がリリースされています。早急にアップデートしましょう。

【対策2】Context LookupsをThread Context Map patternsで格納したものに書き換える

ロギング構成ファイルの「PatternLayout」タグで「Context Lookups」(${ctx:username}や$$ {ctx:username})を「Thread Context Map patterns」(%Xや%mdc、%MDC)で格納したものに書き換えます。

【例】

<ファイル名= "アプリケーション" fileName = "application.log" >  
  <PatternLayout>
    <pattern>%X{ctx:username}</ pattern>
  </ PatternLayout>
</ファイル>

【対策3】外部ソース由来のContext Lookupsの参照を削除する

HTTPヘッダーやユーザー入力など、外部ソース由来の「Context Lookups」(${ctx:username}や$$ {ctx:username})の参照を構成ファイルから削除します。