CVE-2018-15756: 通过 Range 请求进行的拒绝服务攻击

| 2018年10月16日 | CVE-2018-15756

描述

Spring Framework 的 5.1 版本、5.0.x 版本(5.0.10 之前)、4.3.x 版本(4.3.20 之前)以及 4.2.x 分支下未获得支持的旧版本,在通过 ResourceHttpRequestHandler 提供静态资源时,或者在 5.0 版本开始,当注解控制器返回 org.springframework.core.io.Resource 时,都支持 Range 请求。恶意用户(或攻击者)可以通过添加具有大量 Range、范围过大重叠或两者兼有的 Range 头,进行拒绝服务攻击。

此漏洞会影响依赖 spring-webmvc 或 spring-webflux 的应用程序。此类应用程序还必须注册用于提供静态资源(例如 JS、CSS、图片等),或有一个返回 org.springframework.core.io.Resource 的注解控制器。

依赖 spring-boot-starter-web 或 spring-boot-starter-webflux 的 Spring Boot 应用程序开箱即用,即可提供静态资源,因此易受攻击。

受影响的 Spring 产品和版本

  • Spring Framework 5.1
  • Spring Framework 5.0.0 到 5.0.9
  • Spring Framework 4.3 到 4.3.19
  • 追溯到 4.2 的未获得支持的旧版本也受影响

缓解措施

受影响版本的用户应采取以下缓解措施

  • 5.1 用户应升级到 5.1.1
  • 5.0.x 用户应升级到 5.0.10
  • 4.3.x 用户应升级到 4.3.20
  • 4.2.x 用户应升级到受支持的分支。

无需进一步的缓解措施。

评估影响时请注意以下几点

  • Range 请求的支持是在 4.2 版本中引入的。因此,4.2 版本之前的版本不受此问题影响。
  • 从注解控制器返回 org.springfamework.core.io.Resource 的支持是在 5.0 版本中引入的。因此,5.0 版本之前的版本只能通过注册提供静态资源的方式受到影响。

致谢

此问题由 Aruba Threat Labs 的 Nicholas Starke 发现并负责任地报告。

历史

2018-10-16:发布初始漏洞报告。

领先一步

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

了解更多

获得支持

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

了解更多

即将举行的活动

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

查看所有