Spring Security 安全性公告

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 的 Macchinetta Framework Development Team、NTT Comware、NTT DATA Corporation 協助驗證解決方案並識別其他利用漏洞的方法。

參考

歷史記錄

2019-02-21:發布初始漏洞報告。

領先一步

VMware 提供培訓和認證,以加速您的進度。

瞭解更多

取得支援

Tanzu Spring 在一個簡單的訂閱中提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位檔案。

瞭解更多

即將舉辦的活動

查看 Spring 社群中所有即將舉辦的活動。

檢視全部