IPBUF安全漏洞报告
English
CVE-2026-34477 CVSS 5.9 中危

CVE-2026-34477 Apache Log4j证书验证绕过漏洞

披露日期: 2026-04-10

漏洞信息

漏洞编号
CVE-2026-34477
漏洞类型
证书验证绕过
CVSS评分
5.9 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Apache Log4j Core

相关标签

Apache Log4j中间人攻击证书验证绕过CVE-2026-34477

漏洞概述

CVE-2026-34477 是 Apache Log4j Core 中由于修复不完整导致的安全漏洞。此前针对 CVE-2025-68161 的修复仅涵盖了系统属性配置,却忽略了 XML 配置文件中 <Ssl> 元素的 verifyHostName 属性。在 2.12.0 至 2.25.3 版本中,该属性被静默忽略,导致即使用户启用了主机名验证,TLS 连接实际上并未执行检查。当应用使用 SMTP、Socket 或 Syslog Appender 并配置 TLS 时,满足特定条件的攻击者可利用此漏洞执行中间人攻击,拦截或篡改日志数据。

技术细节

该漏洞的根本原因是 Apache Log4j Core 在处理 SSL/TLS 配置时的逻辑缺陷。虽然 verifyHostName 属性在 Log4j Core 2.12.0 中引入,旨在允许用户通过配置加强安全性,但代码实现存在遗漏。程序仅响应系统属性 log4j2.sslVerifyHostName,而未读取 <Ssl> 元素中的 verifyHostName 属性值。攻击者若处于网络中间位置(如 ARP 欺骗或恶意路由),并持有目标信任存储区中受信任 CA 签发的证书,即可利用此漏洞。由于主机名验证被跳过,客户端会接受攻击者的伪造证书,从而建立连接。这导致攻击者可以解密传输的日志数据(机密性影响)或向日志流中注入恶意数据(完整性影响)。HTTP Appender 因使用独立的验证逻辑而不受影响。

攻击链分析

STEP 1
侦察
攻击者确认目标应用使用 Apache Log4j Core 2.12.0 至 2.25.3 版本,且配置了 SMTP、Socket 或 Syslog Appender 的 TLS 功能。
STEP 2
中间人位置
攻击者通过网络手段(如ARP欺骗、DNS投毒或BGP劫持)将自己置于客户端应用与日志服务器之间。
STEP 3
证书伪造
攻击者向客户端出示一个由受信任CA签名的证书,但该证书的主机名与目标日志服务器不匹配。
STEP 4
绕过验证
由于 Log4j 忽略了 verifyHostName 配置,客户端不检查证书主机名,错误地信任攻击者的证书并建立连接。
STEP 5
数据拦截
攻击者成功解密传输的日志数据,读取敏感信息,或篡改日志内容以掩盖入侵痕迹。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- Vulnerable Log4j2 Configuration --> <!-- The 'verifyHostName' attribute is ignored in versions <= 2.25.3 --> <Configuration status="WARN"> <Appenders> <Socket name="Socket" host="log-server.example.com" port="6514"> <Ssl verifyHostName="true"> <!-- TrustStore configuration --> <TrustStore path="/path/to/truststore.jks" password="changeit"/> </Ssl> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> </Socket> </Appenders> <Loggers> <Root level="info"> <AppenderRef ref="Socket"/> </Root> </Loggers> </Configuration> /* * Exploitation Concept: * 1. Attacker performs a Man-in-the-Middle (MitM) attack between the Log4j client and the log server. * 2. Attacker presents a valid certificate (signed by a trusted CA) but for a different hostname. * 3. Due to the bug, Log4j (<= 2.25.3) does not verify the hostname in the certificate against the configured host. * 4. Connection is established, allowing interception/modification of logs. */

影响范围

Apache Log4j Core 2.12.0 - 2.25.3

防御指南

临时缓解措施
建议用户立即将 Apache Log4j Core 升级到 2.25.4 版本,该版本已修正此问题,确保 verifyHostName 属性能够正确生效。在无法立即升级的情况下,应检查网络环境安全性,防止中间人攻击。

参考链接

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