当地时间4月10日,Apache官方发布通告称将在最新版本中修复一个远程代码执行漏洞(CVE-2019-0232)。在启用了enableCmdLineArguments的Windows上运行时,由于JRE将命令行参数传递给Windows的方式存在错误,CGI Servlet很容易受到远程执行代码的攻击。CGI Servlet默认是关闭的。
   
  
漏洞详细信息可参考:
   
受影响的版本
   
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 9.0.18
  
Apache Tomcat 8.5.40
  
Apache Tomcat 7.0.94
  
  
解决方案
   
Apache官方还未正式发布以上最新版本,受影响的用户请保持关注,在官方更新后尽快升级进行防护。与此同时,用户可以将CGI Servlet初始化参数enableCmdLineArguments设置为false来进行防护。
   
  
参考链接:
   
http://tomcat.apache.org/security-7.html
  
http://tomcat.apache.org/security-8.html
  
http://tomcat.apache.org/security-9.html
  
  
版本排查
   
通常在Apache Tomcat官网下载的安装包名称中会包含有当前Tomcat的版本号,用户可通过查看解压后的文件夹名称来确定当前的版本。
   
   
  
如果解压后的Tomcat目录名称被修改过,或者通过Windows Service Installer方式安装,可使用软件自带的version模块来获取当前的版本。进入tomcat安装目录的bin目录,输入命令version.bat后,可查看当前的软件版本号。
   
   
  
如果当前版本在影响范围内,且满足漏洞触发的3个条件,则当前系统可能存在风险,请相关用户及时更新。
   
关闭enableCmdLineArguments参数
   
Apache官方还未正式发布最新修复版本,请受影响的用户保持关注,官方更新后尽快升级进行防护。在官方发布新版本之前,用户可以将CGI Servlet初始化参数enableCmdLineArguments设置为false来进行临时防护。具体操作步骤如下:
   
1、在Tomcat安装路径的conf文件夹下,使用编辑器打开web.xml。
   
   
  
2、找到enableCmdLineArguments参数部分,添加如下配置:
   
   
  
3、重启Tomcat服务,以确保配置生效。