CVE-2026-40021Apache Log4net 3.3.0之前的版本中,XmlLayout和XmlLayoutSchemaLog4J组件未能清理MDC属性键/值及identity字段中XML 1.0规范禁止的字符。这导致在序列化过程中发生异常,进而导致受影响的日志事件被静默丢失。攻击者若能影响这些字段,可利用此漏洞抑制特定的日志记录,从而损害审计追踪和恶意活动的检测能力。
该漏洞的根本原因是输入验证不足。XML 1.0规范明确禁止某些控制字符(如0x00-0x08, 0x0B, 0x0C, 0x0E-0x1F)。当Log4net使用XmlLayout或XmlLayoutSchemaLog4J输出日志时,它会尝试将日志事件(包括MDC属性和identity字段)序列化为XML。如果攻击者能够控制这些字段并注入上述非法字符,XML序列化器将抛出异常。由于Log4net在处理此异常时未能妥善记录,导致该日志事件被静默丢弃。这种机制允许攻击者通过触发异常来擦除特定的审计痕迹,掩盖其攻击行为,且无需用户交互即可通过网络发起攻击。