抢先一步
VMware 提供培训和认证,以加速您的进步。
了解更多除非另有说明,否则严重程度很高。
Spring Security 版本 5.8(低于 5.8.5)、6.0(低于 6.0.5)和 6.1(低于 6.1.2)可能容易受到授权规则错误配置的影响,如果应用程序使用 requestMatchers(String)
或 requestMatchers(HttpMethod, String)
和多个 servlet,其中一个是 Spring MVC 的 DispatcherServlet。
(DispatcherServlet
是一个 Spring MVC 组件,它将 HTTP 端点映射到 @Controller
注解类上的方法。)
具体来说,当以下所有条件都为真时,应用程序容易受到攻击
DispatcherServlet
)requestMatchers(String)
或 requestMatchers(HttpMethod, String)
如果以下任何一项为真,则应用程序不易受到攻击
DispatcherServlet
requestMatchers(String)
或 requestMatchers(HttpMethod, String)
受影响版本的用户应采取以下缓解措施。
首先
其次,如果您使用多个 servlet 并且其中一个是 Spring MVC 的 DispatcherServlet
,您可能会在启动时看到以下错误消息
This method cannot decide whether these patterns are Spring MVC patterns or not.
If this endpoint is a Spring MVC endpoint, please use `requestMatchers(MvcRequestMatcher)`;
otherwise, please use `requestMatchers(AntPathRequestMatcher)`.
有时不需要这些额外的 servlet。 例如,某些 servlet 容器将添加一个 DefaultServlet
,该 servlet 有效地被 DispatcherServlet
替换。 在许多情况下,可以从容器的全局配置中删除此类 servlet。
如果不需要额外的 servlet,请尝试删除它们,看看错误是否仍然存在。 如果是这样,请按照错误消息中的说明进行操作。
有关如何解决该错误消息的几个示例,请参阅 以下缓解存储库。
此问题由 Kudelski Security 的高级软件工程师 Mouad Kondah 发现并负责任地报告。
要报告 Spring 产品组合中某个项目的安全漏洞,请参阅安全策略