oss-sec mailing list archives

CVE-2026-34479: Apache Log4j 1 to Log4j 2 bridge: Silent log event loss in Log4j1XmlLayout due to unescaped XML 1.0 forbidden characters


From: Piotr Karwasz <pkarwasz () apache org>
Date: Fri, 10 Apr 2026 13:41:00 +0000

Severity: moderate 

Affected versions:

- Apache Log4j 1 to Log4j 2 bridge (org.apache.logging.log4j:log4j-1.2-api) 2.7 before 2.25.4
- Apache Log4j 1 to Log4j 2 bridge (org.apache.logging.log4j:log4j-1.2-api) 3.0.0-alpha1 through 3.0.0-beta2

Description:

The Log4j1XmlLayout from the Apache Log4j 1-to-Log4j 2 bridge fails to escape characters forbidden by the XML 1.0 
standard, producing malformed XML output. Conforming XML parsers are required to reject documents containing such 
characters with a fatal error, which may cause downstream log processing systems to drop or fail to index affected 
records.

Two groups of users are affected:

  *  Those using Log4j1XmlLayout directly in a Log4j Core 2 configuration file.
  *  Those using the Log4j 1 configuration compatibility layer with org.apache.log4j.xml.XMLLayout specified as the 
layout class.


Users are advised to upgrade to Apache Log4j 1-to-Log4j 2 bridge version 2.25.4, which corrects this issue.

Note: The Apache Log4j 1-to-Log4j 2 bridge is deprecated and will not be present in Log4j 3. Users are encouraged to 
consult the  Log4j 1 to Log4j 2 migration guide https://logging.apache.org/log4j/2.x/migrate-from-log4j1.html , and 
specifically the section on eliminating reliance on the bridge.

Credit:

Ap4sh (Samy Medjahed) and Ethicxz (Eliott Laurie) (original reporters) (finder)
jabaltarik1 (independently) (finder)

References:

https://github.com/apache/logging-log4j2/pull/4078
https://logging.apache.org/security.html#CVE-2026-34479
https://logging.apache.org/cyclonedx/vdr.xml
https://logging.apache.org/log4j/2.x/migrate-from-log4j1.html
https://logging.apache.org/
https://www.cve.org/CVERecord?id=CVE-2026-34479

Timeline:

2026-02-16: Vulnerability reported by Ap4sh and ethicxz
2026-03-15: Independent report received from jabaltarik1
2026-03-24: Fix shared publicly by Piotr P. Karwasz as pull request #4078
2026-03-25: Fix verified by reporter
2026-03-28: Log4j 2.25.4 released


Current thread: