vlambda博客
学习文章列表

漏洞预警:apache tomcat session 反序列化代码执行漏洞



Apache Tomcat Session 反序列化代码执行漏洞 (CVE-2020-9484)


一、 基本信息

风险等级:中危

漏洞类型:远程代码执行

漏洞编号:CVE-2020-9484


二、 漏洞描述

Apache Tomcat 10.0.0-M1至10.0.0-M4, 9.0.0.M1至9.0.34, 8.5.0至8.5.54, 7.0.0至7.0.103的版本如果配置不当,攻击者有可能构造恶意请求,造成反序列化代码执行漏洞。


三、 受影响产品版本与不受影响版本

Apache Tomcat 10.0.0-M1 to 10.0.0-M4

Apache Tomcat 9.0.0.M1 to 9.0.34

Apache Tomcat 8.5.0 to 8.5.54

Apache Tomcat 7.0.0 to 7.0.103

不受影响产品版本:

Apache Tomcat 10.x >= 10.0.0-M5

Apache Tomcat 9.x >= 9.0.35

Apache Tomcat 8.x >= 8.5.55

Apache Tomcat 7.x >= 7.0.104

攻击者能够控制服务器上文件的内容和名称;

服务器PersistenceManager配置中使用了FileStore;

服务器PersistenceManager配置中设置sessionAttributeValueClassNameFilter为NULL,或者使用了其他较为宽松的过滤器,允许攻击者提供反序列化数据对象;

攻击者知道使用的FileStore存储位置到可控文件的相对文件路径。

攻击者在同时满足以上4个条件时,可以发送一个恶意构造的请求,来造成反序列化代码执行漏洞。


四、 排查方法

攻击者能够控制服务器上文件的内容和名称;

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


漏洞预警:apache tomcat session 反序列化代码执行漏洞 

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

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

 

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


五、 漏洞修复

升级Apache Tomcat到最新版本。官方下载链接:

https://tomcat.apache.org/

安全版本:

· Apache Tomcat 10.x >= 10.0.0-M5

· Apache Tomcat 9.x >= 9.0.35

· Apache Tomcat 8.x >= 8.5.55

· Apache Tomcat 7.x >= 7.0.104


六、 其他防护措施

Apache Tomcat官方已经发布新版本修复上述漏洞,建议受影响用户尽快升级进行防护。不方便升级的用户,还可以暂时禁用FileStore功能,或者单独配置sessionAttributeValueClassNameFilte的值来确保只有特定属性的对象可以被序列化/反序列化




星野科技
成就客户 创新未来