CVE-2018-1199:靜態資源的安全繞過

| 2018年1月29日 | CVE-2018-1199

描述

Spring Security 在處理安全約束時未考慮 URL 路徑引數。透過新增帶有特殊編碼的 URL 路徑引數,攻擊者可能能夠繞過安全約束。此問題的根本原因是 Servlet 規範中關於路徑引數處理的定義不夠明確(見下文)。某些 Servlet 容器會將路徑引數包含在 `getPathInfo()` 返回的值中,而有些則不會。Spring Security 使用 `getPathInfo()` 的返回值來對映請求到安全約束。在此特定的攻擊中,路徑引數中使用的不同字元編碼允許繞過受保護的 Spring MVC 靜態資源 URL。

受影響的 Spring 產品和版本

  • Spring Security
    • 4.1.0 - 4.1.4
    • 4.2.0 - 4.2.3
    • 5.0.0
  • Spring Framework
    • 5.0.0 - 5.0.2
    • 4.3.0 - 4.3.13
  • 舊的、未維護的 Spring Security 和 Spring Framework 版本未進行分析,可能受到影響

緩解措施

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

  • Spring Security
    • 5.0.x 使用者應更新至 5.0.1
    • 4.2.x 使用者應更新至 4.2.4
    • 4.1.x 使用者應更新至 4.1.5
  • Spring Framework
    • 5.0.x 使用者應更新至 5.0.3
    • 4.3.x 使用者應更新至 4.3.14

作為一項普遍的預防措施,鼓勵使用者將公共和私有資源分開。例如,將靜態資源分開並將它們對映到 `/resources/public/**` 和 `/resources/private/**`,而不是將一個通用根目錄用於混合的公共和私有資源內容。

致謝

此問題由 NTT Comware、NTT DATA Corporation 和 NTT 的 Macchinetta 框架開發團隊發現,並負責任地報告給了 Pivotal。

歷史

2018-01-29:釋出初步漏洞報告

領先一步

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

瞭解更多

獲得支援

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

瞭解更多

即將舉行的活動

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

檢視所有