本稿では、Apache Log4jで確認されたサービス拒否(DoS)攻撃に関連する脆弱性(CVE-2021-45105)について説明しています。この脆弱性は「Log4Shell」(CVE-2021-44228)の直接的な亜種ではないものの、同種の攻撃経路であり、攻撃者が制御するログ情報のLookup機能を悪用する点で両者は類似しています。ただしこの脆弱性の場合、JNDI以外のLookupが悪用される可能性があります。
Apache Log4jのAPIは、Lookupにおける変数の置換をサポートしています。この際、細工された変数を用いることで、制御不能な再帰的な置換により、アプリケーションをクラッシュさせることが可能になります。つまりこれにより、Lookupのコマンドを制御できる攻撃者(例:Thread Context Map経由など)は不正なLookup変数を細工し、DoS攻撃を引き起こすことができます。この現象は、バージョン2.16.0 を含むLog4jの各バージョンのテストで確認されています。
続きを読む