IPBUF安全漏洞报告
English
CVE-2026-34481 CVSS 7.5 高危

CVE-2026-34481 Apache Log4j JSON布局拒绝服务漏洞

披露日期: 2026-04-10

漏洞信息

漏洞编号
CVE-2026-34481
漏洞类型
拒绝服务
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Apache Log4j

相关标签

CVE-2026-34481Apache Log4j拒绝服务日志注入JSON格式化

漏洞概述

Apache Log4j的JsonTemplateLayout组件在处理特定日志事件时存在安全漏洞。当日志事件包含攻击者控制的非有限浮点值(如NaN或Infinity)时,该组件会生成违反RFC 8259标准的无效JSON数据。这种异常输出会导致依赖有效JSON的下游日志解析和处理系统(如SIEM)无法索引或直接丢弃日志记录,从而造成日志丢失和处理服务中断。

技术细节

该漏洞的触发需要满足两个条件:应用程序使用了Log4j的JsonTemplateLayout作为日志输出格式,并且应用程序记录了包含攻击者控制数据的MapMessage。漏洞根源在于JsonTemplateLayout在序列化MapMessage中的数据时,未对Java浮点数中的NaN(非数字)和Infinity(无穷大)进行特殊处理。根据RFC 8259规范,JSON标准不支持这些非有限数值。当攻击者通过应用接口注入包含NaN或Infinity的数据,并被应用记录到日志中时,Log4j会直接将这些非法值序列化到JSON字符串中。这会导致下游的日志消费端(如Elasticsearch、Logstash或自定义解析脚本)在解析JSON时抛出异常,进而导致日志处理流程中断,甚至可能导致解析进程崩溃,形成拒绝服务攻击。由于攻击无需认证且无复杂交互,该漏洞具有较高的利用风险。

攻击链分析

STEP 1
1. 信息收集
攻击者识别目标应用程序是否使用了Apache Log4j并配置了JsonTemplateLayout。
STEP 2
2. 构造载荷
攻击者构造包含非有限浮点值(如NaN、Infinity)的恶意数据。
STEP 3
3. 提交数据
攻击者通过应用程序的输入接口(如HTTP请求参数)提交恶意数据。
STEP 4
4. 触发日志
应用程序接收数据并将其封装在MapMessage中进行记录,触发JsonTemplateLayout生成日志。
STEP 5
5. 破坏解析
JsonTemplateLayout输出包含NaN/Infinity的无效JSON,导致下游日志系统解析失败或拒绝索引。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.message.MapMessage; import java.util.HashMap; import java.util.Map; public class Log4jExploit { private static final Logger logger = LogManager.getLogger(Log4jExploit.class); public static void main(String[] args) { // Prepare malicious data containing non-finite float values Map<String, String> data = new HashMap<>(); data.put("input", String.valueOf(Double.NaN)); // Create a MapMessage which is vulnerable when logged with JsonTemplateLayout MapMessage message = new MapMessage(data); // Trigger the logging event // If JsonTemplateLayout is used, the output will be invalid JSON (e.g. "input": NaN) // causing downstream parsers to fail. logger.error("Processing user input: {}", message); } }

影响范围

Apache Log4j <= 2.25.3

防御指南

临时缓解措施
如果不能立即升级,建议暂时禁用JsonTemplateLayout或改用其他布局模式。同时,应在记录日志前对MapMessage中的浮点型数据进行清洗,将非有限数值替换为null或字符串格式,以确保生成的JSON符合RFC 8259标准。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表