0x00 漏洞背景

2020年1月17日,360CERT监测到spring官方发布了CVE-2020-5398漏洞预警,漏洞等级高。

在Spring Framework,5.2.x之前的版本5.2.x,5.1.13之前的版本5.1.x和5.0.16之前的版本5.0.x中,应用程序在受到攻击时容易受到反射文件下载(RFD)攻击,通过响应中设置“ Content-Disposition” 响应header头来造成攻击,其中filename属性来自用户提供的输入。

360CERT判断漏洞等级为高,危害面/影响面大。建议使用Spring MVC或Spring WebFlux用户及时安装最新补丁,以免遭受黑客攻击

 

0x01 漏洞详情

当满足以下所有条件时,应用程序将很容易受到攻击:

响应header是通过org.springframework.http.ContentDisposition进行添加的
文件名是通过以下方式之一设置的:

ContentDisposition.Builder#filename(String)
ContentDisposition.Builder#filename(String, US_ASCII)

filename的值来自用户提供的输入
应用程序未清除用户提供的输入
攻击者已将下载的响应内容中注入恶意命令

 

0x02 影响版本

Spring Framework:

5.2.0 to 5.2.2
5.1.0 to 5.1.12
5.0.0 to 5.0.15

 

0x03 修复建议

建议5.2.x用户应升级到5.2.3。5.1.x用户应升级到5.1.13。5.0.x用户应升级到5.0.16
或者采用正确配置:

应用程序未设置“ Content-Disposition”响应header。
响应header不是通过org.springframework.http.ContentDisposition进行添加的
文件名是通过以下方式之一设置的:

ContentDisposition.Builder#filename(String, UTF_8)
ContentDisposition.Builder#filename(String, ISO_8859_1)

filename的值不是来自用户提供的输入
filename来自用户提供的输入,但由应用程序清除。

 

0x04 时间线

2020-01-16 初始漏洞报告发布

2020-01-17 360CERT发布漏洞报告

 

0x05 参考链接

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

文章原文链接:https://www.anquanke.com/post/id/197418