CVE-2018-11040: MappingJackson2JsonView 中預設啟用 JSONP

MEDIUM | 2018 年 6 月 14 日 | CVE-2018-11040

描述

Spring Framework 的 5.0.x 版本(低於 5.0.7)、4.3.x 版本(低於 4.3.18)以及較舊的不受支援版本,允許 Web 應用程式透過 AbstractJsonpResponseBodyAdvice(對於 REST 控制器)和 MappingJackson2JsonView(對於瀏覽器請求)啟用透過 JSONP(帶有填充的 JSON)的跨域請求。兩者在 Spring Framework 和 Spring Boot 中都不是預設啟用的。 但是,當在應用程式中配置 MappingJackson2JsonView 時,JSONP 支援會自動透過 "jsonp" 和 "callback" JSONP 引數使用,從而啟用跨域請求。

允許來自不受信任來源的跨域請求可能會將使用者資訊暴露給第三方瀏覽器指令碼。

此漏洞適用於以下應用程式:

  • 顯式配置 MappingJackson2JsonView。
  • 並且未將 MappingJackson2JsonView 的 jsonpParameterNames 屬性設定為空集。
  • 並透過可以使用 JSONP 呈現內容的端點公開敏感使用者資訊。

受影響的 Spring 產品和版本

  • Spring Framework 5.0 到 5.0.6
  • Spring Framework 4.1 到 4.3.17

緩解措施

受影響版本的使用者應採取以下緩解措施:

  • 5.0.x 使用者應升級到 5.0.7。
  • 4.3.x 使用者應升級到 4.3.18。
  • 舊版本應升級到受支援的分支,或者將 MappingJacksonJsonView 的 jsonpParameterNames 屬性設定為空集。

需要 JSONP 支援的應用程式需要在升級後顯式配置 MappingJacksonJsonView 的 jsonpParameterNames 屬性。 建議應用程式切換到使用 CORS 而不是 JSONP 來啟用跨域請求。 Spring Framework 中的 JSONP 支援已從 5.0.7 和 4.3.18 開始棄用,並將在 5.1 中刪除。

鳴謝

此問題由 Meyyalagan Chandrasekaran 發現並報告。

參考文獻

歷史

2018-06-14:釋出初始漏洞報告。

領先一步

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

瞭解更多

獲得支援

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

瞭解更多

即將舉行的活動

檢視 Spring 社群中所有即將舉行的活動。

檢視全部