CVE-2026-49844:Apache Log4j 会输出无效的 JSON 日志
sec随谈
sec随谈
sec随谈
2026年7月13日 09:17
北京
在小说阅读器读本章
去阅读
摘要
Apache 修复了 Apache Log4j 中的一个新漏洞,编号为 CVE-2026-49844。该漏洞使攻击者能够用一个特殊数值来破坏 JSON 日志输出。它影响 log4j-api 组件,在 CVSS 4.0 标准下评分为 6.3,即中危(medium)级别。
为何重要
日志是你的审计追踪(audit trail)。如果攻击者破坏了日志,你的告警就可能凭空消失。这个漏洞可以阻塞日志管道(log pipelines),使恶意活动对下游工具隐身。因此其真正的影响在于可用性(availability)和完整性(integrity),而非代码执行。
攻击原理
问题出在 Apache Log4j 将数值序列化(serialize)为 JSON 的方式上。当一个 MapMessage 包含 NaN 或 Infinity 这类非有限值(non-finite value)时,布局(layout)会将该裸令牌(bare token)直接写入。然而,JSON 并不允许这些令牌。其结果是,严格的解析器会拒绝该日志记录,下游的采集(ingestion)也可能失败。
该漏洞仅在两个条件同时满足时才会触发。第一,应用必须使用 JsonTemplateLayout 或其他会调用 MapMessage.asJson() 的布局。第二,它必须记录一个包含攻击者可控浮点数(float)的 MapMessage。值得注意的是,这个补丁还封堵了此前 CVE-2026-34481 所遗留的一个缺口。
利用现状
目前不存在针对 CVE-2026-49844 的公开概念验证(PoC)。研究人员尚未确认任何在野攻击。相关问题在 EPSS(漏洞利用预测评分系统)上的评分也低于 1%,且未出现在 CISA 的 KEV(已知被利用漏洞)名单中。
受影响版本
该漏洞影响 2.13.1 至 2.25.4 的 log4j-api,同时也影响 2.26.0 版本以及 3.0.0 的早期预发布版(pre-releases)。Apache 已在 2.25.5 和 2.26.1 中修复了该问题。
如何修补
请立即升级。迁移到 2.25.5 或 2.26.1,因为这两个版本都能为上述数值输出有效的 JSON。你可以从 Apache Log4j 下载页面获取已修复的构建版本。如需完整详情,请查阅 Apache 的安全公告。如果你暂时无法打补丁,可在非有限浮点数到达日志记录器(logger)之前将其拒绝。
参考链接:
https://logging.apache.org/security.html#CVE-2026-49844
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论