CVE-2026-40023Apache Log4cxx 1.7.0之前的版本中,XMLLayout组件未能清理XML 1.0规范禁止的字符,导致生成的XML输出无效。合规的XML解析器会拒绝此类文档,导致下游日志系统丢弃记录。攻击者可利用此漏洞通过注入非法字符来抑制特定日志,破坏审计踪迹,从而掩盖恶意活动。
该漏洞源于Apache Log4cxx的XMLLayout类在将日志事件序列化为XML时,未对日志消息、NDC及MDC属性键值中的控制字符进行过滤。XML 1.0规范严格禁止ASCII控制字符(如0x00-0x08, 0x0B, 0x0C, 0x0E-0x1F)出现在文档中。攻击者若能控制被记录的数据(如通过Web请求参数),即可注入这些非法字符。当Log4cxx输出包含非法字符的日志时,由于生成的XML格式不合法,下游的日志解析器(如Logstash、Splunk)将抛出致命错误并拒绝处理该条日志。这导致攻击者可以针对性地清除攻击行为的记录,绕过安全监控和审计,损害系统的完整性。