# CVE-2021-45105: Apache Log4j2 uncontrolled recursion in self-referential lookups

Source: https://junglewise.ai/threats/cve-2021-45105-apache-log4j2-uncontrolled-recursion-in-self-referential-lookups  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2021-12-18. Updated: 2026-06-09  
License: CC BY 4.0 with a link back

CVE-2021-45105 · Severity: high · CVSS 8.6 · Published 2021-12-18

Apache Log4j2, a widely used logging library for Java applications, is vulnerable to a flaw that can cause systems to crash or become unresponsive. By sending specifically crafted data to an application that logs that information, an attacker can trigger an infinite loop that exhausts system resources. This results in a denial-of-service, potentially disrupting business operations and service availability.

Technologies: [org.apache.logging.log4j:log4j-core (Maven)](https://junglewise.ai/threats/technologies/org-apache-logging-log4j-log4j-core), [org.ops4j.pax.logging:pax-logging-log4j2 (Maven)](https://junglewise.ai/threats/technologies/org-ops4j-pax-logging-pax-logging-log4j2). Vendors: [Maven](https://junglewise.ai/threats/vendors/maven).

## Quick answers

**Is CVE-2021-45105 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2021-45105 being exploited in the wild.

**How severe is CVE-2021-45105?** High severity, with a CVSS score of 8.6, published 18 December 2021.

**Which products and versions are affected?** org.apache.logging.log4j:log4j-core (Maven) ECOSYSTEM:introduced=2.4.0,fixed=2.12.3; org.ops4j.pax.logging:pax-logging-log4j2 (Maven) ECOSYSTEM:introduced=1.8.0,fixed=1.9.2; OPS4J Pax-Logging-Log4j2 >= 1.8.0, < 1.9.2; >= 1.10.0, < 1.10.9; >= 1.11.0, < 1.11.12; >= 2.0.0, < 2.0.13.

**Is there a fix for CVE-2021-45105?** Yes. org.apache.logging.log4j:log4j-core (Maven): upgrade to 2.12.3 or later; org.ops4j.pax.logging:pax-logging-log4j2 (Maven): upgrade to 1.9.2 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2021-45105 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2021-45105?** Check whether you run org.apache.logging.log4j:log4j-core (Maven), org.ops4j.pax.logging:pax-logging-log4j2 (Maven) or OPS4J Pax-Logging-Log4j2 at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- org.apache.logging.log4j:log4j-core (Maven): upgrade to 2.12.3 or later

  ```sh
  # set org.apache.logging.log4j:log4j-core to 2.12.3 in your pom.xml or build.gradle
  ```

- org.ops4j.pax.logging:pax-logging-log4j2 (Maven): upgrade to 1.9.2 or later

  ```sh
  # set org.ops4j.pax.logging:pax-logging-log4j2 to 1.9.2 in your pom.xml or build.gradle
  ```


## Technical details

Apache Log4j2 (specifically the log4j-core component) fails to properly validate input during recursive evaluation of self-referential lookups. An attacker who can provide or influence Thread Context Map data can inject a crafted string that triggers uncontrolled recursion. This leads to a StackOverflowError, terminating the process and resulting in a denial-of-service. The vulnerability is reachable over the network without authentication if the application logs attacker-controlled input using a vulnerable layout pattern. This issue is fixed in versions 2.17.0, 2.12.3, and 2.3.1.

## Affected products

- Apache Log4j2 >= 2.0-alpha1, <= 2.16.0 (excluding 2.12.3)
- OPS4J pax-logging-log4j2 >= 1.8.0, < 1.9.2; >= 1.10.0, < 1.10.9; >= 1.11.0, < 1.11.12; >= 2.0.0, < 2.0.13

## Identifiers

- CVE-2021-45105
- GHSA-p6xc-xr62-6r2g

## Timeline

- 2021-12-18: disclosed
- 2021-12-18: advisory
- 2021-12-18: patched

## References

- [https://api.github.com/users/chrisbloom7](https://api.github.com/users/chrisbloom7)
- [https://github.com/chrisbloom7](https://github.com/chrisbloom7)
- [https://api.github.com/users/chrisbloom7/gists%7B/gist_id%7D](https://api.github.com/users/chrisbloom7/gists%7B/gist_id%7D)
- [https://api.github.com/users/chrisbloom7/repos](https://api.github.com/users/chrisbloom7/repos)
- [https://avatars.githubusercontent.com/u/21250?v=4](https://avatars.githubusercontent.com/u/21250?v=4)
- [https://api.github.com/users/chrisbloom7/events%7B/privacy%7D](https://api.github.com/users/chrisbloom7/events%7B/privacy%7D)

## Related threats

- [Apache Log4j Core invalid XML output in XmlLayout](https://junglewise.ai/threats/cve-2026-34480-apache-log4j-core-invalid-xml-output-in-xmllayout)
- [Apache Log4j Core log injection in Rfc5424Layout](https://junglewise.ai/threats/cve-2026-34478-apache-log4j-core-log-injection-in-rfc5424layout)
- [Apache Log4j Core improper certificate validation in network appenders](https://junglewise.ai/threats/cve-2026-34477-apache-log4j-core-improper-certificate-validation-in-network)
- [Apache Log4j does not verify the TLS hostname in its Socket Appender](https://junglewise.ai/threats/cve-2025-68161-apache-log4j-does-not-verify-the-tls-hostname-in-its-socket)
- [Apache Log4j 1.x (EOL) allows Denial of Service (DoS)](https://junglewise.ai/threats/cve-2023-26464-apache-log4j-1-x-eol-allows-denial-of-service-dos)
