领先一步
VMware 提供培训和认证,助您加速进步。
了解更多
Spring Security OAuth 的版本 2.3 早于 2.3.5、2.2 早于 2.2.4、2.1 早于 2.1.4、2.0 早于 2.0.17 以及更早的不受支持版本,可能容易受到开放重定向攻击,从而导致授权码泄露。恶意用户或攻击者可以使用授权码授权类型构造一个指向授权端点的请求,并通过 "redirect_uri" 参数指定一个被篡改的重定向 URI。这可能导致授权服务器将资源所有者用户代理重定向到攻击者控制下的 URI,并泄露授权码。
此漏洞会影响满足以下所有要求的应用程序
@EnableAuthorizationServer
)AuthorizationEndpoint
中使用 DefaultRedirectResolver
此漏洞不影响以下应用程序
DefaultRedirectResolver
以外的其他 RedirectResolver
实现@EnableResourceServer
)@EnableOAuthClient
)受影响版本的用户应采取以下缓解措施
无需其他缓解步骤。
对于 Spring Boot 1.5.x 和 Spring IO Platform Cairo 的用户,强烈建议将 spring-security-oauth 版本覆盖为包含此 CVE 补丁的最新版本。要覆盖版本,您需要声明/设置属性 spring-security-oauth.version
。
以下是针对 Spring Boot 1.5.x 用户的说明。
要使用 Maven 覆盖属性,请在 pom 的
部分中声明该属性
要使用 Gradle 覆盖属性,请在 build.gradle
脚本中配置该值
ext['spring-security-oauth.version'] = '2.0.17.RELEASE'
或在 gradle.properties
中
spring-security-oauth.version=2.0.17.RELEASE
注意:同样的说明适用于 Spring IO Platform Cairo 用户。但是,需要指定的版本是 2.2.4.RELEASE。
此问题由 dotloop 的 Dirk Koehler (github.com/phrinx) 发现并负责任地报告。特别感谢 NTT、NTT Comware、NTT DATA Corporation 的 Macchinetta 框架开发团队,感谢他们协助验证解决方案并识别出利用此漏洞的其他方式。
https://github.com/spring-projects/spring-security-oauth/blob/master/tests/annotation/approval/src/main/java/demo/Application.java#L36'>@EnableAuthorizationServer</a></code>
的示例配置
历史
2019-02-21: 初步漏洞报告发布。
报告漏洞
要报告 Spring 产品组合中项目的安全漏洞,请参阅安全策略