领先一步
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
之外不保护任何ServletrequestMatchers(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
,而DispatcherServlet
实际上已经取代了它。在许多情况下,可以从容器的全局配置中删除此类Servlet。
如果不需要额外的Servlet,请尝试删除它们并查看错误是否仍然存在。如果错误仍然存在,请按照错误消息中的说明操作。
有关如何处理错误消息的几个示例,请参阅以下缓解存储库。
此问题由来自Kudelski Security的高级软件工程师Mouad Kondah发现并负责报告。
要报告Spring产品组合中项目的安全漏洞,请参阅安全策略