Log4Shell
Java Naming and Directory Interface(JNDI)を使用すると、実行時にデータへのパスを指定してJavaオブジェクトがルックアップできるようになる。JNDIではいくつかのディレクトリインターフェイスを利用でき、各インターフェイスはファイルを検索するために異なるスキームを提供している。これらのインターフェースの中に、Java以外でも利用されるLightweight Directory Access Protocol(LDAP)プロトコルがあり、ローカルまたはインターネット上の任意の場所にある適切なサーバーからURLとしてオブジェクトデータを取得する。
デフォルトの設定では、文字列をロギングする際に、Log4j 2は ${prefix:name}という形式の式で文字列置換を実行する。たとえば、Text: ${java:version}はText: Java version 1.7.0_67などの文字列に置換される。認識される式の中には、${jndi:<lookup>}がある。これは、LDAPを経由したルックアップを指定することにより、任意のURLに問い合わせが行われ、Javaオブジェクトデータとしてロードされるというものである、たとえば、${jndi:ldap://example.