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