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

综述

近日,Apache Tomcat发布通告称修复了一个源于持久化Session的远程代码执行漏洞(CVE-2020-9484)。要利用该漏洞,攻击者需要同时满足以下4个条件:

  1. 攻击者可以控制服务器上的文件名/文件内容;
  2. 服务器上配置使用了PersistenceManager的FileStore;
  3. PersistenceManager配置了sessionAttributeValueClassNameFilter值为“NULL”或者其他宽松的过滤器,使得攻击者可以提供反序列化对象;
  4. 攻击者知道FileStore使用的存储位置到可控文件的相对路径。

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

受影响产品版本

  • 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 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官网下载的安装包名称中会包含Tomcat的版本号,如果用户解压后没有更改Tomcat的目录名称,可以通过查看文件夹名称来确定当前使用的版本。

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

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

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

漏洞防护

目前官方已在最新版本中修复了该漏洞,请受影响的用户尽快升级版本进行防护,官方下载链接:

版本号下载地址
Apache Tomcat 10.0.0-M5https://tomcat.apache.org/download-10.cgi
Apache Tomcat 9.0.35https://tomcat.apache.org/download-90.cgi
Apache Tomcat 8.5.55https://tomcat.apache.org/download-80.cgi
Apache Tomcat 7.0.104https://tomcat.apache.org/download-70.cgi

其他防护措施:

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

参考链接:

https://tomcat.apache.org/security.html

发表评论