一、漏洞概述
漏洞名称:Apache Tomcat 远程代码执行漏洞
CVE 编号:CVE-2024-56337
漏洞类型:TOCTOU(时间差竞争条件)
发现时间:2024年12月21日
风险评分:9.8(高危)
利用条件:无权限限制,网络可达
公开状态:PoC/EXP 已公开,在野利用尚未发现
漏洞背景:
Apache Tomcat 是广泛使用的开源 Web 服务器和 Java Servlet 容器。在此次披露的漏洞中,安全研究人员指出,该问题源于对早期漏洞(CVE-2024-50379)的缓解措施不完整。如果 Apache Tomcat 在特定配置下运行,攻击者可能利用该漏洞通过写入恶意文件,实现远程代码执行。
触发条件:
-
Tomcat 默认 servlet 的 readonly
初始化参数设置为false(启用写权限)。 -
Java 系统属性 sun.io.useCanonCaches
设置为true(Java 8 和 Java 11 默认为 true,Java 17 默认 false,Java 21 及以上版本不受影响)。 -
Tomcat 运行在区分大小写的文件系统上(如 Windows 或某些 Linux 文件系统)。
当满足以上条件时,攻击者可通过发送特制请求,将恶意文件写入服务器,并最终实现远程控制。
二、影响版本
以下 Apache Tomcat 版本受到漏洞影响:
-
Apache Tomcat 11.0.0-M1 至 11.0.1 -
Apache Tomcat 10.1.0-M1 至 10.1.33 -
Apache Tomcat 9.0.0-M1 至 9.0.97
三、如何修复漏洞
为避免该漏洞带来的风险,建议受影响的用户尽快采取以下措施:
1. 升级 Apache Tomcat
官方已发布修复版本,用户应及时升级至以下版本:
-
Apache Tomcat 11.0.2 及以上 -
Apache Tomcat 10.1.34 及以上 -
Apache Tomcat 9.0.98 及以上
下载链接:Apache Tomcat 官网
2. 临时缓解措施
如无法立即升级,可通过以下方法进行临时缓解:
- Java 8/Java 11
:显式设置系统属性 sun.io.useCanonCaches
为false(默认值为 true)。 - Java 17
:如该属性被设置,需确保其值为false(默认值为 false)。 - Java 21 及以上版本
:无需进一步配置(该属性已被移除)。
设置方法示例:
在启动 Tomcat 的 JVM 参数中添加以下配置:
-Dsun.io.useCanonCaches=false
3. 通用安全建议
-
定期更新服务器和依赖软件的安全补丁,避免已知漏洞被利用。 -
强化网络和系统访问控制,关闭不必要的端口和服务。 -
采用多因素认证及最小权限原则,限制用户和应用的权限。 -
设置强密码策略,并定期修改密码。
四、参考资料
- Apache 官方漏洞通告
- CVE-2024-56337 的 NVD 页面
- CVE-2024-50379 修复讨论
原文始发于微信公众号(云梦安全):Apache Tomcat 高危远程代码执行漏洞(CVE-2024-56337)
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论