Spring Security 安全性建議

CVE-2023-20859:因 Token 撤銷失敗而將敏感資訊插入日誌

中等 | 2023 年 3 月 20 日 | CVE-2023-20859

描述

在 Spring Vault 3.0.x 版本(3.0.2 之前)和 2.3.x 版本(2.3.3 之前)以及更舊版本中,當應用程式嘗試撤銷 Vault 批次 Token 時,存在將敏感資訊插入日誌檔中的漏洞。

具體來說,當以下所有條件皆成立時,應用程式會存在漏洞

  • 驗證機制建立批次 Token。
  • 在僅命令式安排中使用 LifecycleAwareSessionManager
  • LifecycleAwareSessionManager.destroy() 由應用程式或應用程式關機 hook 呼叫
  • LifecycleAwareSessionManagerorg.springframework.vault.authentication 的日誌記錄層級設定為至少 WARN 或更詳細的日誌記錄層級。
  • Token 撤銷失敗,因為以下任一原因:
    • Vault 錯誤回應,指出無法撤銷批次 Token
    • 發生 I/O 錯誤

如果以下任一條件成立,應用程式則不存在漏洞:

  • 應用程式在混合反應式/命令式或僅反應式安排中使用 ReactiveSessionManager
  • LifecycleAwareSessionManager.destroy() 從未由應用程式或應用程式關機 hook 呼叫
  • LifecycleAwareSessionManagerorg.springframework.vault.authentication 的日誌記錄層級設定為 ERROR 或更高,例如 OFF
  • 驗證機制建立服務 Token。

受影響的 Spring 產品和版本

  • Spring Vault
    • 3.0.0 至 3.0.1
    • 2.3.0 至 2.3.2 及更舊版本
  • Spring Cloud Vault
    • 4.0.0
    • 3.1.0 至 3.1.2 及更舊版本
  • Spring Cloud Config
    • 4.0.0 至 4.0.1
    • 3.1.0 至 3.1.6 及更舊版本

緩解措施

受影響版本的用戶應採用以下緩解措施。

  • Spring Vault 3.0.x 用戶應升級至 3.0.2。當過渡性地使用 Spring Vault 時,將 spring-vault-core 的相依性版本釘選至 3.0.2
  • Spring Vault 2.3.x 用戶應升級至 2.3.3。當過渡性地使用 Spring Vault 時,將 spring-vault-core 的相依性版本釘選至 2.3.3
  • 所有其他用戶應使用服務 Token 或將 org.springframework.vault.authentication.LifecycleAwareSessionManager logger 的日誌記錄層級至少提高至 ERROR

無需其他步驟。

已修正此問題的版本包括:

  • Spring Vault
    • 3.0.2
    • 2.3.3

鳴謝

此問題由 Martin Kiesel 識別並負責地回報。

參考資料

歷史記錄

  • 2023-03-20:發布初始漏洞報告。

領先一步

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

瞭解更多

取得支援

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

瞭解更多

即將舉行的活動

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

檢視全部