領先一步
VMware 提供培訓和認證,以加速您的進步。
瞭解更多Spring Security 在處理安全約束時不考慮 URL 路徑引數。 透過向請求新增帶有編碼“/”的 URL 路徑引數,攻擊者可能能夠繞過安全約束。 此問題的根本原因是 Servlet 規範中對路徑引數的處理缺乏明確性(見下文)。 一些 Servlet 容器在為 getPathInfo() 返回的值中包含路徑引數,而另一些則不包含。 Spring Security 使用 getPathInfo() 返回的值作為將請求對映到安全約束的過程的一部分。 路徑引數的意外存在可能導致約束被繞過。
Apache Tomcat(所有當前版本)的使用者不受此漏洞的影響,因為 Tomcat 遵循 Servlet 專家組先前提供的指導,並從 getContextPath()、getServletPath() 和 getPathInfo() [1] 返回的值中刪除路徑引數。
基於 Apache Tomcat 的其他 Servlet 容器的使用者可能會受到影響,具體取決於路徑引數的處理是否已修改。
已知 IBM WebSphere Application Server 8.5.x 的使用者會受到影響。
實現 Servlet 規範的其他容器的使用者可能會受到影響。
[1] https://issues.apache.org/bugzilla/show_bug.cgi?id=25015
採用以下緩解措施之一將防止此漏洞。
此問題由 NTT DATA Corporation 的 Shumpei Asahara 和 Yuji Ito 發現,並負責任地報告給 Pivotal。
2016-12-28:釋出初始漏洞報告
要報告 Spring 組合中的專案的安全漏洞,請參閱 安全策略