【漏洞通告】 Spring MVC或Spring WebFlux header导致的RFD攻击风险(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属性来自用户提供的输入。

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

  1. 响应header是通过springframework.http.ContentDisposition进行添加的
  2. 文件名是通过以下方式之一设置的:
  • Builder#filename(String)。
  • Builder#filename(String, US_ASCII)。
  • filename的值来自用户提供的输入。
  • 应用程序未清除用户提供的输入。
  • 攻击者已将下载的响应内容中注入恶意命令。

禹宏信安建议使用Spring MVC或Spring WebFlux用户及时安装最新补丁,以免遭受黑客攻击

漏洞编号

CVE-2020-5398

漏洞危害

应用程序在受到攻击时容易受到反射文件下载(RFD)攻击。

漏洞等级

高危
受影响版本

Spring Framework:

5.2.0 to 5.2.2

5.1.0 to 5.1.12

5.0.0 to 5.0.15

修复方案

  1. 建议2.x用户应升级到5.2.3。5.1.x用户应升级到5.1.13。5.0.x用户应升级到5.0.16
  2. 或者采用正确配置:
  • 应用程序未设置“ Content-Disposition”响应header。
  • 响应header不是通过springframework.http.ContentDisposition进行添加的,文件名是通过以下方式之一设置的:

ContentDisposition.Builder#filename(String, UTF_8)

ContentDisposition.Builder#filename(String, ISO_8859_1)

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

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