Spring 安全公告

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

查看全部