CVE-2020-5398 Spring MVC/Spring WebFlux header导致的RFD攻击风险通告
2020-01-17 16:16

报告编号:B6-2020-011701

报告来源:360-CERT

报告作者:360-CERT

更新日期:2020-01-17

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 修复建议

  1. 建议5.2.x用户应升级到5.2.3。5.1.x用户应升级到5.1.13。5.0.x用户应升级到5.0.16
  2. 或者采用正确配置:
  • 应用程序未设置“ 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 参考链接

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