XmlLayout Apache Log4j Core https://logging.apache.org/log4j/2.x/manual/layouts.html#XmlLayout в версиях до 2.25.3 включительно не очищает символы, запрещенные спецификацией XML 1.0 https://www.w3.org/TR/xml/#charsets, создавая недопустимый вывод XML всякий раз, когда сообщение журнала или значение MDC содержит такие символы. Эффект зависит от используемой реализации StAX:
* Встроенный StAX JRE: Запрещенные символы автоматически записываются на выходные данные, создавая неверный XML. Соответствующие анализаторы должны отклонять такие документы с фатальной ошибкой, которая может привести к тому, что последующие системы обработки журналов удалят затронутые записи.
* Альтернативные реализации StAX (например, Woodstox https://github.com/FasterXML/woodstox, транзитивная зависимость модуля Jackson XML Dataformat): исключение выдается во время вызова журнала, и событие журнала никогда не доставляется в назначенное приложение, а только во внутренний регистратор состояния Log4j.
Пользователям рекомендуется выполнить обновление до Apache Log4j Core 2.25.4, который устраняет эту проблему путем очистки запрещенных символов перед выводом XML.
Показать оригинальное описание (EN)
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.
Характеристики атаки
Последствия
Строка CVSS v4.0