一、漏洞概述
近日,绿盟科技CERT监测到Apache发布安全公告,修复了Apache Tomcat条件竞争代码执行漏洞(CVE-2024-50379/CVE-2024-56337)。CVSS评分9.8,目前漏洞细节与PoC已公开,请相关用户尽快采取措施进行防护。
CVE-2024-50379:由于Windows文件系统与Tomcat在路径大小写区分处理上的不一致,当启用了默认servlet的写入功能(设置readonly=false且允许PUT方法),未经身份验证的攻击者可以构造特殊路径绕过Tomcat的路径校验机制,通过条件竞争不断发送请求上传包含恶意JSP代码的文件触发Tomcat对其解析和执行,从而实现远程代码执行。
CVE-2024-56337:该漏洞源于对CVE-2024-50379的临时措施不完善,需要进行额外的配置来修复,具体取决于Tomcat运行的Java版本。当启用了默认Servlet的写入功能(设置readonly=false且允许PUT方法)以及系统属性sun.io.useCanonCaches=true时;未经身份验证的攻击者可以构造特殊路径绕过Tomcat的路径校验机制,通过条件竞争不断发送请求上传包含恶意JSP代码的文件触发Tomcat对其解析和执行,从而实现远程代码执行。
Apache Tomcat是一个开源的Java应用服务器,由 Apache 软件基金会开发和维护,广泛用于各种Web应用开发与部署场景中。
绿盟科技已成功复现上述漏洞:
参考链接:
https://www.mail-archive.com/announce@apache.org/msg09703.html
https://www.mail-archive.com/announce@apache.org/msg09707.html
二、影响范围
受影响版本
- 11.0.0-M1 <= Apache Tomcat <= 11.0.1
- 10.1.0-M1 <= Apache Tomcat <= 10.1.33
- 9.0.0.M1 <= Apache Tomcat <= 9.0.97
注:仅影响在Windows系统下启用PUT请求方法,并将readonly参数设置为非默认值false,且系统属性sun.io.useCanonCaches为true(Java 8与Java 11默认为true,Java 17默认配置为false,Java 21及更高版本不受影响)。
不受影响版本
- Apache Tomcat >= 11.0.2
- Apache Tomcat >= 10.1.34
- Apache Tomcat >= 9.0.98
三、漏洞检测
- 人工检测
一:从Apache Tomcat官网下载的安装包名称中会包含Tomcat的版本号,如果用户解压后没有更改Tomcat的目录名称,可以通过查看文件夹名称来确定当前使用的版本。
如果解压后的Tomcat目录名称被修改过,或者通过Windows Service Installer方式安装,可使用软件自带的version模块来获取当前的版本。也可以进入Tomcat安装目录的bin目录,运行version.bat(Linux运行version.sh)后,可查看当前的软件版本号。
二、如果该版本在受影响的范围内,再检查conf\web.xml文件中是否开启了PUT方法。打开web.xml文件,如果org.apache.catalina.servlets.DefaultServlet处readonly设置成了false,则说明存在漏洞风险。
- 产品检测
绿盟科技远程安全评估系统(RSAS)与综合威胁探针(UTS)已具备对此次漏洞的扫描与检测能力,请有部署以上设备的用户升级至最新版本。
升级包版本号 | 升级包下载链接 | |
RSAS V6系统插件升级包 | V6.0R02F01.3808 | https://update.nsfocus.com/update/listRsasDetail/v/vulsys |
UTS | 6.0.7.3.69577 | https://update.nsfocus.com/update/listBsaUtsDetail/v/wcl2.0.0 |
关于RSAS的升级配置指导,请参考如下链接:
https://mp.weixin.qq.com/s/SgOaCZeKrNn-4uR8Yj_C3Q
四、漏洞防护
- 官方升级
目前官方已发布新版本修复了上述漏洞,请受影响的用户尽快升级版本进行防护,下载链接:
https://tomcat.apache.org/download-11.cgi
https://tomcat.apache.org/download-10.cgi
https://tomcat.apache.org/download-90.cgi
- 产品防护
针对上述漏洞,网络入侵防护系统(IPS)历史通用规则支持防护,绿盟科技Web应用防护系统(WAF)已发布规则升级包,请相关用户升级规则包至最新版,以形成安全产品防护能力。安全防护产品规则编号如下:
安全防护产品 | 升级包版本号 | 升级包下载链接 | 规则编号 |
WAF | 6.0.7.0.69577 | https://update.nsfocus.com/update/listWafSpecialDetail/v/all | 27005783 |
6.0.7.3.69577 | https://update.nsfocus.com/update/listWafV67Detail/v/rule6070 | ||
6.0.8.0.69577 | https://update.nsfocus.com/update/listWafV68Detail/v/rule | ||
IPS | 5.6.10.37895 | https://update.nsfocus.com/update/listNewipsDetail/v/rule5.6.10 | [68654]
[41544] |
5.6.11.37895 | https://update.nsfocus.com/update/listNewipsDetail/v/rule5.6.11 |
产品规则升级的操作步骤详见如下链接:
WAF:https://mp.weixin.qq.com/s/7F8WCzWsuJ5T2E9e01wNog
IPS:https://mp.weixin.qq.com/s/DxQ3aaap8aujqZf-3VbNJg
- 临时防护措施
若相关用户暂时无法进行升级操作,也可使用下列措施进行临时缓解:
1、将conf/web.xml文件中的readonly参数设置为true或进行注释;
2、禁用PUT方法并重启Tomcat服务使配置生效;
3、将系统属性sun.io.useCanonCaches设置为false(Java 21及更高版本不受影响)。
声明
本安全公告仅用来描述可能存在的安全问题,绿盟科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,绿盟科技以及安全公告作者不为此承担任何责任。
绿盟科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经绿盟科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。