CVE-2020-5397:通过 Spring MVC 或 Spring WebFlux 中的 CORS 预检请求进行的 CSRF 攻击

中等 | 2020 年 1 月 16 日 | CVE-2020-5397

描述

Spring Framework 的 5.2.x 版本(5.2.3 之前的版本)在通过针对 Spring MVC(spring-webmvc 模块)或 Spring WebFlux(spring-webflux 模块)端点的 CORS 预检请求进行 CSRF 攻击时存在漏洞。

仅未经验证的端点存在漏洞,因为预检请求不应包含凭证,因此请求应会因认证失败。但是,一个值得注意的例外是基于 Chrome 的浏览器在使用客户端证书进行身份验证时,因为 Chrome 会在 CORS 预检请求中发送 TLS 客户端证书,这违反了规范要求。 

因此次攻击,无法发送或接收任何 HTTP 正文。

受影响的 Spring 产品和版本

  • Spring Framework
    • 5.2.0 至 5.2.2

缓解措施

受影响版本的使用者应采取以下缓解措施。  5.2.x 用户应升级到 5.2.3。  无需其他缓解措施。 使用启用了基于 URL 的安全性和 CORS 支持的 Spring Security 可以防止此漏洞暴露。 已修复此问题的版本包括

  • Spring Framework
    • 5.2.3

致谢

此问题由 Google 的 Eric Zimanyi 识别并负责任地报告。

参考资料

历史

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

领先一步

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

了解更多

获得支持

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

了解更多

即将举行的活动

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

查看所有