领先一步
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 组合中的项目的安全漏洞,请参阅 安全策略