Spring Security 安全公告

CVE-2023-20862:登出時未正確儲存空的 SecurityContext

| 2023 年 4 月 17 日 | CVE-2023-20862

描述

在 Spring Security 中,版本 5.7.x (低於 5.7.8)、版本 5.8.x (低於 5.8.3) 和版本 6.0.x (低於 6.0.3) 中,如果使用序列化版本,登出支援無法正確清除安全性內容。 此外,無法將空的安全性內容明確儲存到 HttpSessionSecurityContextRepository。 這個漏洞可能會讓使用者即使在執行登出後仍保持驗證狀態。

具體來說,當以下任一情況為真時,應用程式容易受到攻擊

  • 您正在使用 SecurityContextHolderFilter 或 requireExplicitSave(true),並且您正在使用 Spring Security 的登出支援與序列化會話 (例如 Spring Session) 和 invalidateHttpSession(false)
  • 您正在透過將空的 SecurityContext 儲存到 HttpSessionSecurityContextRepository 來手動登出使用者
  • 您有一個不依賴 HttpSession 的自定義 SecurityContextRepository

如果以下任一情況為真,則應用程式不會受到攻擊

  • 您仍然使用已棄用的 SecurityContextPersistenceFilter 或 requireExplicitSave(false)
  • 您正在使用 Spring Security 的登出支援與記憶體中的會話。
  • 您沒有將空的 SecurityContext 儲存到 HttpSessionSecurityContextRepository

受影響的 Spring 產品和版本

Spring Security

  • 6.0.0 到 6.0.2
  • 5.8.0 到 5.8.2
  • 5.7.0 到 5.7.7

緩解措施

受影響版本的用戶應採用以下緩解措施。 5.7.x 用戶應升級到 5.7.8。 5.8.x 用戶應升級到 5.8.3。 6.0.x 用戶應升級到 6.0.3。 不需要其他步驟。 已修復此問題的版本包括

Spring Security

  • 5.7.8
  • 5.8.3
  • 6.0.3

鳴謝

此問題由 Porsche Informatik 的 Daniel Furtlehner 發現並負責地報告。

參考資料

領先一步

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

了解更多

取得支援

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

了解更多

即將舉行的活動

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

檢視全部