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

MEDIUM | MAY 30, 2019 | CVE-2019-11269

描述

Spring Security OAuth 版本 2.32.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 社区中即将举行的所有活动。

查看全部