Spring Security 安全建議

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 Framework Development Team 發現,並負責任地報告給 Pivotal。

歷史紀錄

2018-01-29:發布初始漏洞報告

搶先一步

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

了解更多

取得支援

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

了解更多

即將舉行的活動

查看 Spring 社群中所有即將舉行的活動。

檢視全部