【漏洞通告】关于Apache Tomcat存在远程代码执行漏洞的预警通报(CVE-2024-56337)

                                                                   安全通告

                                     关于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