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

檢視所有