Spring安全公告

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社区中所有即将举行的活动。

查看全部