CVE-2016-5007 Spring Security / MVC 路徑匹配不一致

MEDIUM | 2016 年 7 月 7 日 | CVE-2016-5007

描述

Spring Security 和 Spring Framework 都依賴於 URL 模式對映來進行授權,以及將請求對映到相應的控制器。

模式匹配機制的嚴格程度不同,例如路徑段中空格的修剪,可能導致 Spring Security 無法識別某些路徑為未受保護的,但這些路徑實際上對映到應該受到保護的 Spring MVC 控制器。

由於 Spring Framework 提供了更豐富的功能用於模式匹配,並且 Spring Security 和 Spring Framework 中的模式匹配都可以輕鬆定製,從而導致了更多差異,因此問題更加複雜。

受影響的 Spring 產品和版本

  • Spring Security 3.2.x、4.0.x、4.1.0
  • Spring Framework 3.2.x、4.0.x、4.1.x、4.2.x
  • 其他不受支援的版本也受到影響

緩解措施

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

  • 為了全面解決這些問題,Spring Security 提供了 URL 授權,可以將模式匹配委託給 Spring Framework。 為了利用此選項,應用程式應升級到 Spring Security 4.1.1+Spring Framework 4.3.1+ 並使用 MvcRequestMatcher
  • 從 Spring Framework 4.3.0+ 開始,AntPathMatcher 配置為 trimTokens 設定為 "false",這與 Spring Security 一致。 因此,僅使用 Spring Framework 4.3.0+ 就可以消除路徑匹配不一致的某些原因。
  • Spring Framework 3.2.x、4.0.x、4.1.x、4.2.x 的使用者可以使用 MVC Java 配置MVC 名稱空間AntPathMatchertrimTokens 屬性設定為 "false"。
  • 此外,應用程式應始終在應用程式的業務層中使用 Spring Security 的機制(例如新增 @Secured 註解)來補充基於 URL 的授權。

貢獻

該漏洞由來自 INTRINSEC 的 Clément Notin 負責任地報告。

參考

歷史

2016-7 月-07:首次釋出漏洞報告

領先一步

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

瞭解更多

獲取支援

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

瞭解更多

即將到來的活動

檢視 Spring 社群中所有即將到來的活動。

檢視全部