Spring Security 安全性建議

CVE-2017-4995:Jackson配置允許使用未知的「序列化工具」執行程式碼

| 2017 年 6 月 8 日 | CVE-2017-4995

描述

當設定為啟用預設類型時,Jackson 包含一個反序列化漏洞,可能導致任意程式碼執行。 Jackson 通過將已知的「反序列化工具」列入黑名單來修復此漏洞。

Spring Security 配置 Jackson 並啟用全域預設類型,這表示透過先前的漏洞,如果符合以下所有條件,則可以執行任意程式碼

  • Spring Security 的 Jackson 支援透過調用 SecurityJackson2Modules.getModules(ClassLoader) 或 SecurityJackson2Modules.enableDefaultTyping(ObjectMapper) 來運用。
  • Jackson 用於反序列化不受信任的資料。 Spring Security 不使用 Jackson 執行反序列化,因此這是使用者的明確選擇。
  • 在類別路徑中存在一個未知的(Jackson 尚未將其列入黑名單)「反序列化工具」,允許執行程式碼

Jackson 提供了一種黑名單方法來防止此類攻擊,但當 Spring Security 啟用預設類型時,Spring Security 應主動阻止未知的「反序列化工具」。

受影響的 Spring 產品和版本

  • Spring Security 4.2.0.RELEASE - 4.2.2.RELEASE
  • Spring Security 5.0.0.M1

緩解措施

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

  • 已修復此問題的版本包括
    • Spring Security:4.2.3.RELEASE+
    • Spring Security:5.0.0.M2+
  • 該修復確保預設情況下只會反序列化明確映射的類別。 使用明確映射的類別的效果是建立一個與所有支援的 Jackson 版本一起運作的白名單。 如果使用者明確選擇加入全域預設類型,則會還原先前的潛在危險配置。

參考

歷史

2017-06-08:發佈初始漏洞報告

搶先一步

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

了解更多

取得支援

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

了解更多

即將舉辦的活動

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

查看全部