Spring安全公告

CVE-2018-11040:MappingJackson2JsonView中默认启用JSONP

中级 | 2018年6月14日 | CVE-2018-11040

描述

Spring Framework 5.0.x(早于5.0.7版本)、4.3.x(早于4.3.18版本)以及更旧的、不受支持的版本允许Web应用程序通过AbstractJsonpResponseBodyAdvice(用于REST控制器)和MappingJackson2JsonView(用于浏览器请求)来使用JSONP(带填充的JSON)启用跨域请求。Spring Framework和Spring Boot中默认情况下均未启用这两项功能。但是,当在应用程序中配置MappingJackson2JsonView时,JSONP支持会通过“jsonp”和“callback”JSONP参数自动启用,从而启用跨域请求。

允许来自不受信任来源的跨域请求可能会将用户信息暴露给第三方浏览器脚本。

此漏洞适用于以下应用程序

  • 显式配置MappingJackson2JsonView。
  • 并且没有将MappingJackson2JsonView的jsonpParameterNames属性设置为空集。
  • 并且通过可以使用JSONP呈现内容的端点公开敏感的用户信息。

受影响的Spring产品和版本

  • Spring Framework 5.0到5.0.6
  • Spring Framework 4.1到4.3.17

缓解措施

受影响版本的使用者应采取以下缓解措施:

  • 5.0.x用户应升级到5.0.7。
  • 4.3.x用户应升级到4.3.18。
  • 较旧的版本应升级到受支持的分支,或者将MappingJacksonJsonView的jsonpParameterNames属性设置为空集。

需要JSONP支持的应用程序需要在升级后显式配置MappingJacksonJsonView的jsonpParameterNames属性。建议应用程序改用CORS而不是JSONP来启用跨域请求。从5.0.7和4.3.18版本开始,Spring Framework中的JSONP支持已弃用,并将在5.1中删除。

致谢

此问题由Meyyalagan Chandrasekaran发现并报告。

参考资料

历史记录

2018-06-14:发布初始漏洞报告。

领先一步

VMware提供培训和认证,以加速您的进步。

了解更多

获取支持

Tanzu Spring在一个简单的订阅中提供OpenJDK™、Spring和Apache Tomcat®的支持和二进制文件。

了解更多

即将举行的活动

查看Spring社区中所有即将举行的活动。

查看全部