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