Description
Apache Log4j Core's XmlLayout https://logging.apache.org/log4j/2.x/manual/layouts.html#XmlLayout , in versions up to and including 2.25.3, fails to sanitize characters forbidden by the XML 1.0 specification https://www.w3.org/TR/xml/#charsets producing invalid XML output whenever a log message or MDC value contains such characters. The impact depends on the StAX implementation in use: * JRE built-in StAX: Forbidden characters are silently written to the output, producing malformed XML. Conforming parsers must reject such documents with a fatal error, which may cause downstream log-processing systems to drop the affected records. * Alternative StAX implementations (e.g., Woodstox https://github.com/FasterXML/woodstox , a transitive dependency of the Jackson XML Dataformat module): An exception is thrown during the logging call, and the log event is never delivered to its intended appender, only to Log4j's internal status logger. Users are advised to upgrade to Apache Log4j Core 2.25.4, which corrects this issue by sanitizing forbidden characters before XML output.
Problem types
CWE-116 Improper Encoding or Escaping of Output
Product status
2.0-alpha1 (maven) before 2.25.4
3.0.0-alpha1 (maven)
Timeline
| 2026-02-16: | Vulnerability reported by Ap4sh and ethicxz |
| 2026-03-10: | Candidate patch shared internally by Piotr P. Karwasz |
| 2026-03-15: | Independent report received from jabaltarik1 |
| 2026-03-24: | Fix shared publicly by Piotr P. Karwasz as pull request #4077 |
| 2026-03-25: | Fix verified by reporter |
| 2026-03-28: | Log4j 2.25.4 released |
Credits
Ap4sh (Samy Medjahed) and Ethicxz (Eliott Laurie) (original reporters)
jabaltarik1 (independently)
References
www.openwall.com/lists/oss-security/2026/04/10/9
github.com/apache/logging-log4j2/pull/4077
logging.apache.org/security.html
logging.apache.org/cyclonedx/vdr.xml
logging.apache.org/log4j/2.x/manual/layouts.html
lists.apache.org/thread/5x0hcnng0chhghp6jgjdp3qmbbhfjzhb