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 社群中即將舉行的所有活動。

檢視全部