CVE-2019-11269:spring-security-oauth2 中的开放重定向漏洞

中等 | 2019 年 5 月 30 日 | CVE-2019-11269

描述

Spring Security OAuth 版本 2.3(早于 2.3.6)、2.2(早于 2.2.5)、2.1(早于 2.1.5)和 2.0(早于 2.0.18),以及更早的不受支持的版本,可能易受开放重定向攻击,从而泄露授权码。恶意用户或攻击者可以通过构造一个使用授权码授权类型的请求到授权端点,并通过 redirect_uri 参数指定一个被操纵的重定向 URI。这可能导致授权服务器将资源所有者的用户代理重定向到攻击者控制的、包含泄露授权码的 URI。

此漏洞暴露了满足以下所有要求的应用程序

  • 充当授权服务器的角色(例如 ` @EnableAuthorizationServer `)
  • 在 `AuthorizationEndpoint` 中使用 `DefaultRedirectResolver`

此漏洞**不会**暴露以下应用程序

  • 充当授权服务器并使用 DefaultRedirectResolver 以外的其他 RedirectResolver 实现
  • 仅充当资源服务器的角色(例如 ` @EnableResourceServer `)
  • 仅充当客户端的角色(例如 ` @EnableOAuthClient `)

受影响的 Spring 产品和版本

  • Spring Security OAuth 2.32.3.5
  • Spring Security OAuth 2.22.2.4
  • Spring Security OAuth 2.12.1.4
  • Spring Security OAuth 2.02.0.17

缓解措施

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

  • 2.3.x 用户应升级至 2.3.6
  • 2.2.x 用户应升级至 2.2.5
  • 2.1.x 用户应升级至 2.1.5
  • 2.0.x 用户应升级至 2.0.18
  • 旧版本应升级到受支持的分支

无需其他缓解步骤。

对于 Spring Boot 1.5.xSpring IO Platform Cairo 的用户,强烈建议将 spring-security-oauth 版本覆盖为包含针对 CVE 的修复的最新版本。要覆盖版本,您需要声明/设置属性 spring-security-oauth.version

以下是 **Spring Boot 1.5.x** 用户的说明。

要使用 Maven 覆盖属性,请在 pom 的 `` 部分声明该属性


2.0.18.RELEASE

使用 Gradle 覆盖属性,请在您的 build.gradle 脚本中配置该值

ext['spring-security-oauth.version'] = '2.0.18.RELEASE'

或在 gradle.properties 中

spring-security-oauth.version=2.0.18.RELEASE

注意:对于 Spring IO Platform Cairo 用户,同样的说明也适用。但是,需要指定的版本是 2.2.5.RELEASE

致谢

此问题由 Mike Noordermeer 发现并负责任地报告。

参考资料

历史

2019-05-30:发布初始漏洞报告

领先一步

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

了解更多

获得支持

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

了解更多

即将举行的活动

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

查看所有