CVE-2016-6652 Spring Data JPA 盲注 SQL 注入漏洞

中等 | 2016年9月30日 | CVE-2016-6652

描述

當用戶定義的 Spring Data 儲存庫查詢方法使用手動宣告的 JPQL 查詢,並且將 Sort 例項傳遞給這些方法時,這些例項會被原封不動地傳遞給持久化提供程式,從而允許攻擊者在 ORDER BY 子句中注入任意 JPQL。攻擊者可以利用這一點,透過查詢結果元素順序的變化(取決於注入的 JPQL)來推斷出未暴露欄位的資訊。

Sort 例項來自不可信的來源時(例如 Web 請求引數),這一點尤其危險。

受影響的 Spring 產品和版本

  • Spring Data JPA 1.10.2, 1.9.4
  • 其他不受支援的版本也受到影響

緩解措施

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

  • 建議使用者升級到 Spring Data JPA 1.10.4 (Hopper SR4) 或 1.9.6 (Gosling SR6) 版本。這些版本對傳遞給資料訪問層的 Sort 例項進行了淨化,只允許引用域名物件欄位以及 JPQL 中使用的別名來支援查詢方法。
  • 如果使用者仍需要將複雜的排序表示式傳遞給資料訪問層,可以使用新引入的 JpaSort.unsafe(…) 來恢復舊行為。

致謝

該漏洞是由 Silverskin Information Security 的 Niklas Särökaari 和 Solita 的 Joona Immonen、Arto Santala、Antti Virtanen、Michael Holopainen 以及 Antti Ahola 負責任地報告的。

參考資料

歷史

2016年9月30日:釋出了初始漏洞報告

領先一步

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

瞭解更多

獲得支援

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案,只需一份簡單的訂閱。

瞭解更多

即將舉行的活動

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

檢視所有