該修復程式確保預設情況下只反序列化顯式對映的類。使用顯式對映類的效果是建立一個與所有受支援的 Jackson 版本相容的白名單。如果使用者明確選擇啟用<a href='https://github.com/FasterXML/jackson-docs/wiki/JacksonPolymorphicDeserialization#11-global-default-typing'>全域性預設型別</a>,則恢復之前潛在危險的配置。
傳遞給使用手動宣告的 JPQL 查詢的使用者定義的 Spring Data 儲存庫查詢方法的 Sort 例項會按原樣傳遞給持久化提供程式,並允許攻擊者將任意 JPQL 注入到 ORDER BY 子句中,攻擊者可能利用這些子句根據查詢結果的元素順序因注入的 JPQL 而改變,從而推斷出未暴露的欄位資訊。
如果 Sort 例項來自不可信的來源,例如 Web 請求引數,則此問題尤為突出。
受影響的 Spring 產品和版本
Spring Data JPA 1.10.2, 1.9.4
其他不受支援的版本也受到影響
緩解措施
受影響版本的使用者應採取以下緩解措施
建議使用者升級到 1.10.4 版(Hopper SR4)或 1.9.6 版(Gosling SR6)的 Spring Data JPA。這些版本包含對傳遞給資料訪問層的 <code>Sort</code> 例項的清理,並且只允許引用查詢方法背後 JPQL 中使用的領域物件欄位和別名。