Spring Security OAuth使用whitelabel views 来处理错误时,response_type参数值会被当做Spring SpEL来执行,恶意攻击者通过构造response_type值可以触发远程代码执行漏洞
Spring Security OAuth2使用SpringMVC实现Web接口。该漏洞出现在授权接口 /oauth/authorize,该接口需要登录后才能访问。
Spring Expression Language(简称SpEL)是一种功能强大的表达式语言,是spring提供的,该语言类似于JSP当中的EL表达式。但提供了很多额外的功能,最出色的就是函数调用和简单字符串的模板函数。他需要使用spring提供的解析器来解析,但是他不依赖于spring,可以独立使用。
框架的核心功能之一就是通过依赖注入的方式来管理Bean之间的依赖关系,而SpEl可以方便快捷的对ApplicationContext中的Bean进行属性的装配和提取。