Apache Tomcat 远程代码执行漏洞CVE-2024-50379
Apache Tomcat是Apache软件基金会下属Jakarta项目开发的开源Java Servlet容器和Web服务器,成为目前比较流行的Web应用服务器。
Apache Tomcat允许开发者运行JavaServlet、JavaServer Pages(JSP)及其他基于Java的Web应用程序,技术先进、性能稳定且免费。
一、基本情况
Apache Tomcat现已广泛用于企业级Web应用的开发和部署,因其稳定性和灵活性而受到开发者的青睐,并得到部分软件开发商的认可。
栋科技漏洞库关注到官方近期修复一个 Apache Tomcat 远程代码执行漏洞,漏洞已追踪为CVE-2024-50379,该漏洞的CVSS评分为9.8。
二、漏洞分析
CVE-2024-50379是Apache Tomcat受影响版本中存在的一个远程代码执行漏洞,该漏洞的评分较高,且目前漏洞POC已在互联网上公开。
该漏洞被利用的前提是,当Apache Tomcat 在Windows系统环境下启用PUT请求方式时,并将readonly初始化参数设置为非默认值false。
漏洞允许攻击者在特定条件下绕过Tomcat的大小写检查,上传恶意文件并执行远程代码,导致服务器被完全控制,数据泄露或服务中断。
具体而言,该漏洞源于 Apache Tomcat 在验证文件路径时存在缺陷,而且其中的readonly参数被设置为false(这是一个非标准配置)时。
如果服务器允许通过PUT方法上传文件,那么攻击者可以通过上传含有恶意JSP代码的文件,通过不断地发送请求,就可以利用条件竞争,
如此一来,就可使得受影响服务器中Apache 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
修复缓解措施:
1、在不影响业务的前提下将conf/web.xml 文件中的readOnly 参数设置为true或直接注释该参数;
2、禁用PUT方法并重启Tomcat 服务以启用新的配置。
五、参考链接