Apache Tomcat 一次修 8 个漏洞:JNDIRealm 可跳过密码登录

Apache 软件基金会 10 月 20 日公布 Tomcat 的八个安全漏洞,其中三个被项目定为 Important(重要),五个为 Low。最值得优先处理的是 CVE-2026-101296:当 JNDIRealm 使用非 GSSAPI 的 SASL 认证机制时,凭据校验缺少必要一步,攻击者不提供正确密码也可能认证成功。修复版本为 Tomcat 11.0.27、10.1.61、9.0.123。

事件概述

八个漏洞分布在不同分支与不同组件,影响范围按配置而异,并非每个部署都受全部漏洞影响。Apache 同时说明:Tomcat 8.5 与 7.0 也受其中两个漏洞影响,但两者均已停止维护,不会获得修复。

技术细节

CVE-2026-101296:JNDIRealm 认证绕过

漏洞存在于 JNDIRealm 走非 GSSAPI SASL 机制认证的路径上,缺少一步凭据校验,导致登录可以在密码不正确的情况下成功。影响 11.0.0-M1 至 11.0.26、10.1.0-M1 至 10.1.60、9.0.0.M1 至 9.0.122。需注意它与此前 GSSAPI 相关的 JNDIRealm 绕过是两个不同问题,判断是否中招要看实际配置的 SASL 机制,而不是只看组件名。

CVE-2026-101356:HTTP/2 请求与响应串号

异步 Servlet 处理过程出错后,内部对象回收不当被复用,可能把一个用户的请求或响应混进另一个用户的会话,形成跨用户信息泄露。影响 11.0.22 至 11.0.26、10.1.55 至 10.1.60、9.0.118 至 9.0.122,CISA 按 CVSS v4 评为 9.1。

CVE-2026-103119:AJP 响应越界

仅影响 Tomcat 11 的 AJP 连接器(11.0.0-M25 至 11.0.26)。大块非阻塞写入时出现缓冲区下溢读,响应体可能被拆分到同一连接的下一个请求,大概率导致第二个请求失败,也存在把前一个响应内容泄露给后续请求的可能。

其余五个 Low 级问题分别是:CVE-2026-88041 HTTP/2 trailer 未清理干净造成跨请求污染、CVE-2026-93446 TLS 1.3 连接间歇性失败、CVE-2026-74049 Jasper 的 JSTL 重定向后页面代码继续执行、CVE-2026-74048 FIPS 模式启动失败后仍以非 FIPS 模式继续运行、CVE-2026-80353 APR/Native Unix 域套接字权限竞争(仅 9.0.47 至 9.0.122)。

影响评估

三个 Important 漏洞中,认证绕过直接威胁后台与业务系统登录,HTTP/2 串号则可能把别人的会话数据送到你眼前——对多租户应用和统一登录平台来说,后者的合规风险更高。Apache 公告未证实存在在野利用,也没有公开 PoC,但 JNDIRealm 认证绕过的利用门槛本身就是「发一个登录请求」,一旦细节扩散,扫描量会迅速上升。

修复建议

# 查看当前版本
catalina.sh version
# 检查 JNDIRealm 的 SASL 配置
grep -n -A2 "JNDIRealm" $CATALINA_HOME/conf/server.xml

升级到 11.0.27、10.1.61 或 9.0.123。无法立即升级时,可先收紧配置:禁用未使用的 AJP 连接器、把 JNDIRealm 改用 GSSAPI 之外不受影响的认证方式或改用其他 Realm 实现、限制 HTTP/2 的对外暴露面。日志侧建议关注同一连接上出现两个用户标识的请求,以及 AJP 连接中响应体异常的短请求。

参考来源