Apache Tomcat远程代码执行漏洞(CVE-2020-9484 )

来源:scanv2020.05.21

一 漏洞概述

2020年5月20日,Apache官方发布安全通告修复了Apache Tomcat Session 反序列化远程代码执行漏洞(CVE-2020-9484)。若使用了Tomcat的session持久化功能,那么不安全的配置将导致攻击者可以发送恶意请求执行任意代码。

攻击者成功利用此漏洞需要同时满足以下4个条件:攻击者能够控制服务器上文件的内容和文件名称;服务器PersistenceManager配置中使用了FileStore;PersistenceManager中的sessionAttributeValueClassNameFilter被配置为“null”,或者过滤器不够严格,导致允许攻击者提供反序列化数据的对象;攻击者知道使用的FileStore存储位置到攻击者可控文件的相对路径。

二 影响版本

Apache Tomcat 10.0.0-M1至10.0.0-M4
Apache Tomcat 9.0.0.M1至9.0.34
Apache Tomcat 8.5.0至8.5.54
Apache Tomcat 7.0.0至7.0.103

三 复现过程

1.从Apache Tomcat官网下载的安装包名称中会包含Tomcat的版本号,如果用户解压后没有更改Tomcat的目录名称,可以通过查看文件夹名称来确定当前使用的版本。

如果解压后的Tomcat目录名称被修改过,或者通过Windows Service Installer方式安装,可使用软件自带的version模块来获取当前的版本。也可以进入Tomcat安装目录的bin目录,运行version.bat(Linux运行version.sh)后,可查看当前的软件版本号。

2.查看conf/context.xml文件或具体项目的server.xml文件中,是否存在以下<Manager>节点。

若当前版本在受影响范围内且在PersistenceManager配置中使用了FileStore,则可能存在安全风险。

四 影响范围

根据 ZoomEye 网络空间搜索引擎对关键字 “Apache Tomcat” 进行搜索,共得到 5,042,885 条 IP 历史记录,主要分布在中国、美国等国家;

五 修复建议

升级到 Apache Tomcat 10.0.0-M5或更高版本

升级到 Apache Tomcat 9.0.35或更高版本

升级到 Apache Tomcat 8.5.55或更高版本

升级到 Apache Tomcat 7.0.104或更高版本

若暂时无法进行升级操作,也可采用以下措施进行临时缓解:禁止使用Session持久化功能FileStore,或者单独配置sessionAttributeValueClassNameFilte的值来确保只有特定属性的对象可以被序列化与反序列化。

六 相关链接

seclists:https://seclists.org/oss-sec/2020/q2/136

ZoomEye 网络空间搜索引擎:https://www.zoomeye.org/searchResult?q=app%3A%22Apache%20Tomcat%22

热门文章

关注知道创宇云安全

获取安全动态