CVE Vulnerabilities

CVE-2021-45046

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

Published: Dec 14, 2021 | Modified: Nov 21, 2024
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
8.1 MODERATE
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Ubuntu
HIGH

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)
EAP 7.4.4 release RedHat log4j-core *
EAP 7.4 log4j async RedHat log4j-core *
OpenShift Logging 5.0 RedHat openshift-logging/elasticsearch6-rhel8:v5.0.10-1 *
OpenShift Logging 5.1 RedHat openshift-logging/elasticsearch6-rhel8:v6.8.1-67 *
OpenShift Logging 5.2 RedHat openshift-logging/elasticsearch6-rhel8:v6.8.1-66 *
OpenShift Logging 5.3 RedHat openshift-logging/elasticsearch6-rhel8:v6.8.1-65 *
Red Hat AMQ Streams 2.0.0 RedHat *
Red Hat Data Grid 8.2.3 RedHat log4j-core *
Red Hat Fuse 7.8.2, 7.9.1, 7.10.1 RedHat log4j-core *
Red Hat Integration Camel Extensions for Quarkus 2.2 RedHat log4j-core *
Red Hat Integration Camel-K 1.6.3 RedHat log4j-core *
Red Hat JBoss Enterprise Application Platform 7.4 for RHEL 8 RedHat eap7-log4j-0:2.17.1-1.redhat_00001.1.el8eap *
Red Hat JBoss Enterprise Application Platform 7.4 on RHEL 7 RedHat eap7-log4j-0:2.17.1-1.redhat_00001.1.el7eap *
Red Hat OpenShift Container Platform 3.11 RedHat openshift3/ose-logging-elasticsearch5:v3.11.570-2.gd119820 *
Red Hat OpenShift Container Platform 4.6 RedHat openshift4/ose-logging-elasticsearch6:v4.6.0-202112132021.p0.g2a13a81.assembly.stream *
Red Hat OpenShift Container Platform 4.6 RedHat openshift4/ose-metering-hive:v4.6.0-202112140546.p0.g8b9da97.assembly.stream *
Red Hat OpenShift Container Platform 4.6 RedHat openshift4/ose-metering-presto:v4.6.0-202112150545.p0.g190688a.assembly.art3595 *
Red Hat OpenShift Container Platform 4.7 RedHat openshift4/ose-metering-hive:v4.7.0-202112140553.p0.g091bb99.assembly.stream *
Red Hat OpenShift Container Platform 4.7 RedHat openshift4/ose-metering-presto:v4.7.0-202112150631.p0.gd502108.assembly.4.7.40 *
Red Hat OpenShift Container Platform 4.8 RedHat openshift4/ose-metering-hive:v4.8.0-202112132154.p0.g57dd03a.assembly.stream *
Red Hat OpenShift Container Platform 4.8 RedHat openshift4/ose-metering-presto:v4.8.0-202112150431.p0.g4b934ae.assembly.art3599 *
Vert.x 4.1.8 RedHat log4j-core *
Apache-log4j2 Ubuntu focal *
Apache-log4j2 Ubuntu hirsute *
Apache-log4j2 Ubuntu impish *
Apache-log4j2 Ubuntu trusty *
Apache-log4j2 Ubuntu upstream *
Apache-log4j2 Ubuntu xenial *

Potential Mitigations

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

References