CVE-2020-5398:Spring MVC 或 Spring WebFlux 应用程序通过来自请求输入的“Content-Disposition”头导致的 RFD 攻击

| 2020 年 1 月 16 日 | CVE-2020-5398

描述

在 Spring Framework 的 5.2.x 版本低于 5.2.3,5.1.x 版本低于 5.1.13,以及 5.0.x 版本低于 5.0.16 中,当应用程序在响应中设置“Content-Disposition”头,并且文件名属性来源于用户提供输入时,应用程序容易受到反射文件下载 (RFD) 攻击。

具体来说,当以下所有情况都为真时,应用程序是易受攻击的

  • 此头通过 org.springframework.http.ContentDisposition 进行准备。
  • 文件名通过以下方式之一设置
    • ContentDisposition.Builder#filename(String),或
    • ContentDisposition.Builder#filename(String, US_ASCII)
  • 文件名的值来源于用户提供输入。
  • 用户提供输入未被应用程序清理。
  • 下载的响应内容被攻击者注入恶意命令(详细信息请参阅 RFD 论文参考)。

在以下任何一种情况为真时,应用程序不易受攻击:

  • 应用程序未设置“Content-Disposition”响应标头。
  • 此头未通过 org.springframework.http.ContentDisposition 进行准备。
  • 文件名通过以下方式之一设置
    • ContentDisposition.Builder#filename(String, UTF_8),或
    • ContentDisposition.Builder#filename(String, ISO_8859_1)
  • 文件名不来源于用户提供输入。
  • 文件名来源于用户提供输入但已由应用程序清理。

受影响的 Spring 产品和版本

  • Spring Framework
    • 5.2.0 至 5.2.2
    • 5.1.0 至 5.1.12
    • 5.0.0 至 5.0.15

缓解措施

受影响版本的用户应采取以下缓解措施。5.2.x 用户应升级到 5.2.3。5.1.x 用户应升级到 5.1.13。5.0.x 用户应升级到 5.0.16。无需其他步骤。已修复此问题的版本包括

  • Spring Framework
    • 5.2.3
    • 5.1.13
    • 5.0.16

致谢

此问题由 EPAM 的 Roman Shalymov 发现并负责任地报告。

参考资料

历史

  • 2020-01-16:首次发布漏洞报告。

领先一步

VMware 提供培训和认证,助您加速进步。

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看所有