領先一步
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 產品組合中專案的安全漏洞,請參閱安全策略