漏洞综述
漏洞背景
Apache Tomcat是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,是目前比较流行的Web 应用服务器。
近日,新华三安全攻防团队监测Apache tomcat官方发布通告修复了一个源于持久化Session的远程代码执行漏洞(CVE-2020-9484),远程攻击者在特定条件下可能利用此漏洞执行任意代码。
漏洞原理
当部署tomcat时配置启用了session持久化功能FileStore,且同时存在任意文件上传漏洞,攻击者可以上传指定后缀(.session)的文件,利用可能存在的gadget反序列化,将能造成服务端远程代码执行。原因在于FileStore类读取文件时,使用了JSESSIONID的名称,没有过滤目录穿越符号,导致攻击者可以穿越到任意目录去读取后缀为.session的序列化数据进行反序列化。
漏洞复现
搭建tomcat/7.0.92+JDK1.8.11漏洞环境。部署struts2应用且存在commons-collections4包的gadget。生成序列化文件poc.session复制到tomcat目录下。
客户端发起恶意请求,成功反序列化执行poc.session恶意文件代码。
影响范围
受影响版本
Apache tomcat 10.x <= 10.0.0-M4
Apache tomcat 9.x <= 9.0.34
Apache tomcat 8.5.x <= 8.5.54
Apache tomcat 7.x <= 7.0.103
处置方法
官方补丁
目前厂商已发布升级补丁以修复漏洞,建议尽快安装修复:
https://tomcat.apache.org/security.html
新华三解决方案
新华三IPS规则库1.0.96版本将支持对该漏洞的识别,建议关注新华三官网及时升级版本并使能相关规则。
临时解决方案
禁止使用tomcat的session持久化功能FileStore。
声明
本安全公告仅用来描述可能存在的安全问题,未经新华三大安全允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,新华三大安全以及安全公告作者不为此承担任何责任。新华三大安全拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。