Spring MVC 反射型文件下载漏洞风险通告

发布时间 2020-02-04

漏洞编号和级别


CVE编号:CVE-2020-5398,危险级别:高危,CVSS分值:7.5


影响版本


Spring Framework:


5.2.0 to 5.2.2

5.1.0 to 5.1.12

5.0.0 to 5.0.15


漏洞概述


Pivotal Software Spring Framework是美国Pivotal Software公司的一套开源的Java、JavaEE应用程序框架。该框架可帮助开发人员构建高质量的应用。


近日,Pivotal Software(Spring系列)官方发布 Spring Framework 存在 RFD(反射型文件下载漏洞)的漏洞报告,此漏洞为攻击客户端的漏洞,官方将漏洞严重程度评为高。报告指出,当响应中设置了“Content-Disposition”头且filename属性是用户可控时容易受到RFD攻击。攻击应满足以下所有条件才可成功:


1、响应header是通过org.springframework.http.ContentDisposition进行添加的


2、文件名是通过以下方式之一设置的:


ContentDisposition.Builder#filename(String)

ContentDisposition.Builder#filename(String, US_ASCII)


3、filename的值来自用户提供的输入


4、应用程序未清除用户提供的输入


5、攻击者已将下载的响应内容中注入恶意命令


攻击者可利用RFD漏洞,结合社工等方式,让用户下载一个恶意文件并执行,从而危害用户的终端安全。


漏洞验证


暂无POC/EXP。


修复建议


目前厂商已发布升级补丁以修复漏洞,请受影响的用户升级至 Spring Framework 5.2.3,5.1.13 或 5.0.16 版本:https://github.com/spring-projects/spring-framework


或者采用正确配置:


1、应用程序未设置“ Content-Disposition”响应header。


2、响应header不是通过org.springframework.http.ContentDisposition进行添加的


3、文件名是通过以下方式之一设置的:


ContentDisposition.Builder#filename(String, UTF_8)

ContentDisposition.Builder#filename(String, ISO_8859_1)


4、filename的值不是来自用户提供的输入


5、filename来自用户提供的输入,但由应用程序清除。


参考链接


https://pivotal.io/security/cve-2020-5398