CVE Vulnerabilities

CVE-2021-45046

Improper Neutralization of Special Elements used in an Expression Language Statement ('Expression Language Injection')

Published: Dec 14, 2021 | Modified: Oct 26, 2023
CVSS 3.x
9
CRITICAL
Source:
NVD
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H
CVSS 2.x
5.1 MEDIUM
AV:N/AC:H/Au:N/C:P/I:P/A:P
RedHat/V2
RedHat/V3
Ubuntu

It was found that the fix to address CVE-2021-44228 in Apache Log4j 2.15.0 was incomplete in certain non-default configurations. This could allows attackers with control over Thread Context Map (MDC) input data when the logging configuration uses a non-default Pattern Layout with either a Context Lookup (for example, $${ctx:loginId}) or a Thread Context Map pattern (%X, %mdc, or %MDC) to craft malicious input data using a JNDI Lookup pattern resulting in an information leak and remote code execution in some environments and local code execution in all environments. Log4j 2.16.0 (Java 8) and 2.12.2 (Java 7) fix this issue by removing support for message lookup patterns and disabling JNDI functionality by default.

Weakness

The product constructs all or part of an expression language (EL) statement in a framework such as a Java Server Page (JSP) using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended EL statement before it is executed.

Affected Software

Name Vendor Start Version End Version
Log4j Apache 2.0.1 (including) 2.12.2 (excluding)
Log4j Apache 2.13.0 (including) 2.16.0 (excluding)
Log4j Apache 2.0 (including) 2.0 (including)
Log4j Apache 2.0-beta9 (including) 2.0-beta9 (including)
Log4j Apache 2.0-rc1 (including) 2.0-rc1 (including)
Log4j Apache 2.0-rc2 (including) 2.0-rc2 (including)

Potential Mitigations

  • If user-controlled data must be added to an expression interpreter, one or more of the following should be performed:

References