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)中,如果使用序列化版本,登出支援無法正確清除安全上下文。此外,無法將空的 SecurityContext 顯式儲存到 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 社群中所有即將舉行的活動。

檢視全部