安全通告
关于Apache Tomcat存在远程代码执行漏洞的预警通报
发布日期:2024-12-30
[2024]024号
漏洞描述
2024年12月30日监测发现Apache Tomcat存在远程代码执行漏洞(CVE-2024-56337),该漏洞是由于CVE-2024-50379修复不完善,当Apache Tomcat运行在不区分大小写的文件系统(如Windows)上,且Apache Tomcat的默认servlet启用了写权限(readonly参数被设置为false(非默认配置)),系统属性sun.io.useCanonCaches为true(Java 8或Java 11默认为true、Java 17默认为false、Java 21 及更高版本不受影响),攻击者可能利用该漏洞上传含有恶意JSP代码的文件。通过不断地发送请求利用条件竞争,使得Tomcat解析并执行这些恶意文件,从而实现远程代码执行。
Apache Tomcat是一个开源的Java Servlet容器,广泛用于运行Java Web应用程序。它实现了Java Servlet和JavaServer Pages (JSP) 技术,提供了一个运行环境来处理HTTP请求、生成动态网页,并支持WebSocket通信。Tomcat以其稳定性、灵活性和易用性而受到开发者的青睐,是开发和部署Java Web应用的重要工具之一。
漏洞编号
CVE-2024-56337
漏洞危害
利用 PUT 方法将构造好的恶意文件上传到目标服务器可成功利用这一漏洞,由于 Tomcat 路径校验机制存在缺陷,攻击者可绕过路径一致性检查,使得原本无法解析的文件变为可解析状态,从而能够将恶意文件上传到服务器,通过不断地发送请求,利用条件竞争,使得 Tomcat 解析并执行这些恶意文件,最终实现远程代码执行,获取对服务器的控制权。
漏洞等级
高危
受影响版本
11.0.0-M1 <= Apache Tomcat <= 11.0.2
10.1.0-M1 <= Apache Tomcat <= 10.1.34
9.0.0.M1 <= Apache Tomcat <= 9.0.98
修复方案
Apache 官方已发布安全通告并发布了修复版本,请尽快下载安全版本修复漏洞:
Apache Tomcat 11.0.2
Apache Tomcat 10.1.34
Apache Tomcat 9.0.98
11版本:https://tomcat.apache.org/download-11.cgi
10版本:https://tomcat.apache.org/download-10.cgi
9版本:https://tomcat.apache.org/download-90.cgi
除了升级修复版本,系统属性 sun.io.useCanonCaches 必须设置为 false。
在Java 8或Java 11上运行:必须显示将系统属性 sun.io.useCanonCaches 设置为 false(默认为 true)。
在Java 17上运行:如果设置了系统属性 sun.io.useCanonCaches,则必须将其设置为 false(默认为 false)。
在Java 21及更高版本上运行:不需要进一步配置(系统属性和有问题的缓存已被移除)。
参考链接
https://nvd.nist.gov/vuln/detail/CVE-2024-56337
https://lists.apache.org/thread/b2b9qrgjrz1kvo4ym8y2wkfdvwoq6qbp