Apache Tomcat 远程代码执行漏洞(CVE-2019-0232)预警

近日,Apache Tomcat官方团队在最新的安全更新中披露了一则Apache Tomcat 远程代码执行漏洞(CVE-2019-0232)。漏洞官方定级为 High,属于高危漏洞。


该漏洞本质是在启用了enableCmdLineArguments的Windows上运行时,由于JRE将命令行参数传递给Windows的方式存在错误,通过此漏洞,CGI Servlet可以受到攻击者的远程执行代码攻击 。


漏洞名称:Apache Tomcat 远程代码执行漏洞

威胁等级:高危

影响范围:Apache Tomcat 9.0.0.M1 to 9.0.17

Apache Tomcat 8.5.0 to 8.5.39

Apache Tomcat 7.0.0 to 7.0.93

漏洞类型:代码执行

利用条件:苛刻


一、Apache Tomcat组件介绍


Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。


二、漏洞描述


Apache Tomcat在启用了enableCmdLineArguments的Windows上运行时,由于JRE将命令行参数传递给Windows的方式存在错误,通过此漏洞,CGI Servlet可以受到攻击者的远程执行代码攻击 。


但是在默认情况下,Tomcat 9.0.x中禁用了CGI选项enableCmdLineArguments(默认情况下,在所有版本中都会禁用它以防御此漏洞)。



三、漏洞复现

首先搭建apache-tomcat-8.5.24版本的Tomcat,开启CGI配置,部署Demo代码,更改web.xml,运行。


然后使用构造好的payload攻击,最终执行命令


Tomcat日志如下:



注:漏洞利用条件苛刻。


四、影响范围


目前据统计,在全球范围内对互联网开放Apache Tomcat的资产数量多达167万台,其中归属中国地区的受影响资产数量为68万以上。


目前受影响的Apache Tomcat版本:

Apache Tomcat 9.0.0.M1 to 9.0.17

Apache Tomcat 8.5.0 to 8.5.39

Apache Tomcat 7.0.0 to 7.0.93


五、修复建议


一、受影响版本的用户可以将CGI Servlet初始化参数enableCmdLineArguments设置为false。


二、官方已经在最新版本中修复此漏洞,受影响版本的用户可以在官网下载最新版本:

- Apache Tomcat 9.0.18或更高版本

下载链接:

https://tomcat.apache.org/download-90.cgi


- Apache Tomcat 8.5.40或更高版本

下载链接:

https://tomcat.apache.org/download-80.cgi


- Apache Tomcat 7.0.93或更高版本

下载链接:

https://tomcat.apache.org/download-70.cgi


参考链接


https://markmail.org/message/2fblwm7tt75wn6ch?q=+list:org.apache.tomcat.announce&from=groupmessage&isappinstalled=0