Spring Security 安全性公告

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

檢視全部