Spring Security 安全性建議

CVE-2023-34040:Spring-Kafka 中不正確配置時的 Java 反序列化漏洞

中等 | 2023 年 8 月 23 日 | CVE-2023-34040

說明

在 Spring for Apache Kafka 3.0.9 及更早版本,以及 2.9.10 及更早版本中,存在一個可能的反序列化攻擊向量,但僅在應用了不尋常的配置時才會存在。 攻擊者必須在其中一個反序列化例外記錄標頭中建構惡意的序列化物件。

具體來說,當滿足以下所有條件時,應用程式會受到攻擊:

  • 使用者沒有為記錄的鍵和/或值配置 ErrorHandlingDeserializer
  • 使用者明確將容器屬性 checkDeserExWhenKeyNull 和/或 checkDeserExWhenValueNull 容器屬性設定為 true。
  • 使用者允許不受信任的來源發佈到 Kafka 主題

預設情況下,這些屬性為 false,並且容器僅在配置了 ErrorHandlingDeserializer 時嘗試反序列化標頭。 ErrorHandlingDeserializer 透過在處理記錄之前移除任何此類惡意標頭來防止漏洞。

受影響的 Spring 產品和版本

  • Spring for Apache Kafka
    • 2.8.1 到 2.9.10
    • 3.0.0 到 3.0.9

緩解措施

  • 不使用 ErrorHandlingDeserializers 時,請勿設定容器屬性 checkDeserExWhenKeyNull 或 checkDeserExWhenValueNull,或使用 ErrorHandlingDeserializers
  • 2.8.x 和 2.9.x 使用者應升級到 2.9.11
  • 3.0.x 使用者應升級到 3.0.10

已修復此問題的版本包括

  • Spring for Apache Kafka
    • 3.0.10
    • 2.9.11

Spring Boot 3.0.10(或更高版本)相依性管理將自動使用 Spring for Apache Kafka 3.0.10(或更高版本)。 Spring Boot 2.7.x 使用者應將 Boot 的 Spring for Apache Kafka 2.8.x 相依性管理版本覆寫為 2.9.11(或更高版本)。

鳴謝

此問題由 Contrast Security, Inc. 的 Joseph Beeton 發現並負責任地報告。

領先一步

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

瞭解更多

取得支援

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

瞭解更多

即將舉行的活動

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

檢視全部