CVE-2019-3778:spring-security-oauth2 中的開放重定向漏洞

危急 | 2019年2月21日 | CVE-2019-3778

描述

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 產品和版本

  • Spring Security OAuth 2.32.3.4
  • Spring Security OAuth 2.22.2.3
  • Spring Security OAuth 2.12.1.3
  • Spring Security OAuth 2.02.0.16
  • 更舊的不受支援的版本也受到影響

緩解措施

受影響版本的使用者應採取以下緩解措施

  • 2.3.x 使用者應升級到 2.3.5
  • 2.2.x 使用者應升級到 2.2.4
  • 2.1.x 使用者應升級到 2.1.4
  • 2.0.x 使用者應升級到 2.0.17
  • 舊版本應升級到受支援的分支

無需其他緩解步驟。

對於 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.17.RELEASE

要使用 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 框架開發團隊幫助驗證解決方案並識別額外的漏洞利用方式。

參考資料

歷史

2019-02-21:首次釋出漏洞報告。

領先一步

VMware 提供培訓和認證,助您加速進步。

瞭解更多

獲得支援

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案,只需一份簡單的訂閱。

瞭解更多

即將舉行的活動

檢視 Spring 社群所有即將舉行的活動。

檢視所有