Spring Security 安全公告

CVE-2018-11039:Spring Framework 的跨站点跟踪 (XST)

中等 | 2018 年 6 月 14 日 | CVE-2018-11039

描述

Spring Framework(5.0.x 版本(低于 5.0.7),4.3.x 版本(低于 4.3.18)以及较旧的、不受支持的版本)允许 Web 应用程序使用 Spring MVC 中的 HiddenHttpMethodFilter 将 HTTP 请求方法更改为任何 HTTP 方法(包括 TRACE)。如果应用程序存在预先存在的 XSS 漏洞,则恶意用户(或攻击者)可以使用此过滤器将其升级为 XST(跨站点跟踪)攻击。

受影响的 Spring 产品和版本

  • Spring Framework 5.0 至 5.0.6
  • Spring Framework 4.3 至 4.3.17
  • 较旧的、不受支持的版本也受影响

缓解措施

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

  • 5.0.x 用户应升级到 5.0.7
  • 4.3.x 用户应升级到 4.3.18
  • 较旧的版本应升级到受支持的分支

无需其他缓解措施。

此攻击适用于以下应用程序

  • 使用 HiddenHttpMethodFilter(在 Spring Boot 中默认启用)
  • 允许应用程序服务器处理 HTTP TRACE 请求

此攻击无法直接利用,因为攻击者必须通过 HTTP POST 发出跨域请求,这被同源策略禁止。这就是为什么 Web 应用程序本身中预先存在的 XSS(跨站点脚本)漏洞对于升级到 XST 是必要的。

致谢

此问题由 Ocado Technology 的 Mariusz Łuciów 发现并报告。

历史记录

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

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 应用程序通过 REST 控制器上的 AbstractJsonpResponseBodyAdvice 和浏览器请求上的 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 发现并报告。

参考

CVE-2018-1263:spring-integration-zip 的不安全解压缩

严重 | 2018 年 5 月 11 日 | CVE-2018-1263

描述

spring-integration-zip 1.0.2 之前的版本存在任意文件写入漏洞,可以通过使用包含路径遍历文件名的特制 zip 存档(也影响其他存档,如 bzip2、tar、xz、war、cpio、7z)来利用。因此,当文件名与目标提取目录连接时,最终路径最终会位于目标文件夹之外。之前的 CVE-2018-1261 阻止了框架本身写入文件。虽然框架本身现在不写入此类文件,但它确实向用户应用程序提供了错误的路径,该应用程序可能会无意中使用该路径写入文件。

这特别适用于解压缩转换器。

只有在使用此库的应用程序接受并解压缩来自不受信任来源的 zip 文件时,才会发生这种情况。

受影响的 Spring 产品和版本

  • Spring Integration Zip 社区扩展项目 1.0.1.RELEASE 及更早版本。

缓解措施

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

  • 升级到 1.0.2.RELEASE

或者不要解压缩不受信任的 zip 文件。

致谢

此问题由 Snyk 安全研究团队和 Abago Forgans 发现并负责任地报告。

历史记录

2018-05-11:发布初始漏洞报告

CVE-2018-1257:spring-messaging 的 ReDoS 攻击

| 2018 年 5 月 9 日 | CVE-2018-1257

描述

Spring Framework 5.0.x 版本(低于 5.0.6)和 4.3.x 版本(低于 4.3.17)以及较旧的、不受支持的版本允许应用程序通过 spring-messaging 模块公开通过 WebSocket 端点上的 STOMP 以及简单的内存中 STOMP 代理。恶意用户(或攻击者)可以向代理发送一条消息,从而导致正则表达式拒绝服务攻击。

此漏洞会影响满足以下所有要求的应用程序

  • 依赖于 spring-messaging 和 spring-websocket 模块。
  • 注册 WebSocket 端点上的 STOMP。
  • 启用简单的 STOMP 代理。

受影响的 Spring 产品和版本

  • Spring Framework 5.0 至 5.0.5
  • Spring Framework 4.3 至 4.3.16
  • 较旧的、不受支持的版本也受影响

缓解措施

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

  • 5.0.x 用户应升级到 5.0.6。
  • 4.3.x 用户应升级到 4.3.17。
  • 较旧的版本应升级到受支持的分支。

无需其他缓解措施。

请注意,消息的身份验证和授权(Spring Security 提供了这两者)将此漏洞的暴露限制在授权用户。

致谢

此问题由 Recruit Technologies Co., Ltd. 的 Muneaki Nishimura (nishimunea) 发现并负责任地报告。

参考

  • 启用简单代理的示例 <a href='

CVE-2018-1258:Spring Security 方法安全中的未授权访问

严重 | 2018 年 5 月 9 日 | CVE-2018-1258

描述

Spring Security结合Spring Framework 5.0.5.RELEASE在使用方法安全时存在授权绕过漏洞。未经授权的恶意用户可以获取对应该限制的方法的未授权访问。

受影响的 Spring 产品和版本

  • Spring Framework 5.0.5.RELEASE 和 Spring Security(任意版本)
  • 只有在应用程序同时使用Spring Framework 5.0.5.RELEASE和Spring Security方法安全时才会受到影响。该漏洞存在于Spring Framework 5.0.5.RELEASE中,但除非与Spring Security的方法安全支持结合使用,否则不被视为CVE。
  • 该漏洞仅存在于Spring Framework 5.0.5.RELEASE中。如果应用程序未使用Spring Framework 5.0.5.RELEASE,则不会受到影响。该漏洞不影响任何Spring Framework 4.x版本或任何其他版本的Spring Framework。

缓解措施

  • 使用Spring Framework 5.x的用户应避免使用Spring Framework 5.0.5.RELEASE。更新到Spring Security 5.0.5.RELEASE+或Spring Boot 2.0.2.RELEASE+会传递性地引入Spring Framework 5.0.6.RELEASE+。但是,用户应确保其他依赖项管理机制也更新为使用Spring Framework 5.0.6.RELEASE或更高版本。
  • 使用Spring Framework 4.x(Spring Security 4.x或Spring Boot 1.x)的用户不受影响,因此无需采取任何措施。
  • 无需采取其他缓解措施。

致谢

此问题由Spring Security团队内部识别。

历史记录

2018-05-09:发布初始漏洞报告

  • 2018-07-30:受影响版本的澄清说明

CVE-2018-1259:Spring Data的XMLBeam集成中的XXE

| 2018 年 5 月 9 日 | CVE-2018-1259

描述

Spring Data Commons版本1.13到1.13.11和2.0到2.0.6与XMLBeam 1.4.14或更早版本结合使用时存在属性绑定漏洞,该漏洞是由对XML外部实体引用的限制不当引起的,因为底层库XMLBeam不限制外部引用扩展。未经身份验证的远程恶意用户可以针对Spring Data的基于投影的请求有效负载绑定提供特制请求参数,以访问系统上的任意文件。

受影响的 Spring 产品和版本

  • Spring Data Commons 1.13到1.13.11(Ingalls SR11)
  • Spring Data REST 2.6到2.6.11(Ingalls SR11)
  • Spring Data Commons 2.0到2.0.6(Kay SR6)
  • Spring Data REST 3.0到3.0.6(Kay SR6)

缓解措施

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

  • 1.13.x用户应升级到1.13.12(Ingalls SR12)
  • 2.0.x用户应升级到2.0.7(Kay SR7)
  • 或者,升级到XMLBeam 1.4.15

已修复此问题的版本包括

  • Spring Data REST 2.6.12(Ingalls SR12)
  • Spring Data REST 3.0.7(Kay SR7)

无需其他缓解措施。

请注意,该漏洞仅在使用XMLBeam时可利用。端点的身份验证和授权(Spring Security都提供)的使用将此漏洞的暴露限制在授权用户。

致谢

此问题由Abago Forgans识别并负责任地报告。

参考

  • <a href='https://jira.spring.io/browse/DATACMNS-1292'&gt;https://jira.spring.io/browse/DATACMNS-1292&lt;/a>
  • <a href='https://docs.springframework.org.cn/spring-data/commons/docs/current/reference/html/#core.web.binding'&gt;Spring Data Commons:Web数据绑定支持</a>

CVE-2018-1260:spring-security-oauth2中的远程代码执行

严重 | 2018 年 5 月 9 日 | CVE-2018-1260

描述

Spring Security OAuth版本2.3之前的2.3.3和2.2之前的2.2.2以及2.1之前的2.1.2和2.0之前的2.0.15以及更旧的未受支持版本存在远程代码执行漏洞。恶意用户或攻击者可以向授权端点构造授权请求,当资源所有者转发到批准端点时,这可能导致远程代码执行。

此漏洞会影响满足以下所有要求的应用程序

  • 充当授权服务器的角色(例如@EnableAuthorizationServer)
  • 使用默认的批准端点

此漏洞不会暴露以下应用程序

  • 充当授权服务器的角色,但覆盖默认的批准端点
  • 仅充当资源服务器的角色(例如@EnableResourceServer)
  • 仅充当客户端的角色(例如@EnableOAuthClient)

受影响的 Spring 产品和版本

  • Spring Security OAuth 2.3到2.3.2
  • Spring Security OAuth 2.2到2.2.1
  • Spring Security OAuth 2.1到2.1.1
  • Spring Security OAuth 2.0到2.0.14
  • 较旧的、不受支持的版本也受影响

缓解措施

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

  • 2.3.x用户应升级到2.3.3
  • 2.2.x用户应升级到2.2.2
  • 2.1.x用户应升级到2.1.2
  • 2.0.x用户应升级到2.0.15
  • 较旧的版本应升级到受支持的分支

无需采取其他缓解措施。

致谢

此问题由GoSecure的Philippe Arteau识别并负责任地报告。

参考

  • Spring Security OAuth <a href='http://projects.spring.io/spring-security-oauth/docs/oauth2.html'&gt;文档&lt;/a&gt;,请参阅“授权服务器配置”部分
  • 示例配置 <a href='https://github.com/spring-projects/spring-security-oauth/blob/master/tests/annotation/approval/src/main/java/demo/Application.java#L36'&gt;@EnableAuthorizationServer&lt;/a&gt;…

CVE-2018-1261:spring-integration-zip中的不安全解压缩

严重 | 2018 年 5 月 9 日 | CVE-2018-1261

描述

spring-integration-zip版本1.0.1之前的版本存在任意文件写入漏洞,可以通过使用特制zip档案(也影响其他档案,如bzip2、tar、xz、war、cpio、7z)来实现,该档案包含路径遍历文件名。因此,当文件名与目标提取目录连接时,最终路径最终会超出目标文件夹。

这特别适用于解压缩转换器。

只有在使用此库的应用程序接受并解压缩来自不受信任来源的 zip 文件时,才会发生这种情况。

受影响的 Spring 产品和版本

  • Spring Integration Zip社区扩展项目版本1.0.0.RELEASE

缓解措施

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

  • 升级到1.0.1.RELEASE

或者不要解压缩不受信任的 zip 文件。

致谢

此问题由Snyk安全研究团队识别并负责任地报告。

历史记录

2018-05-09:发布初始漏洞报告

CVE-2018-1256:Spring Cloud SSO连接器中的发行者验证回归

| 2018年4月30日 | CVE-2018-1256

描述

Spring Cloud SSO连接器版本2.1.2存在回归,该回归禁用未绑定到SSO服务的资源服务器中的发行者验证。在具有多个SSO服务计划的PCF部署中,远程攻击者可以使用从另一个服务计划生成的令牌向使用此版本的SSO连接器的未绑定资源服务器进行身份验证。

受影响的 Spring 产品和版本

  • Spring Cloud SSO连接器版本2.1.2

缓解措施

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

  • 已修复此问题的版本包括:</p><ul><li>Spring Cloud SSO连接器:2.1.3</li></ul>
  • 或者,您可以执行<u>以下</u>其中一种解决方法:</p><ul><li>通过服务实例绑定将您的资源服务器绑定到SSO服务计划</li><li>在您的Spring应用程序属性中设置“sso.connector.cloud.available=true”</li></ul>

致谢

此漏洞由Pivotal SSO服务团队负责任地报告。

历史记录

2018-04-30:发布初始漏洞报告

CVE-2018-1273:Spring Data Commons中的RCE

严重 | 2018年4月10日 | CVE-2018-1273

描述

Spring Data Commons版本1.13到1.13.10、2.0到2.0.5以及更旧的未受支持版本存在属性绑定漏洞,该漏洞是由对特殊元素的中和不当引起的。未经身份验证的远程恶意用户(或攻击者)可以针对Spring Data REST支持的HTTP资源或使用Spring Data的基于投影的请求有效负载绑定提供特制请求参数,这可能导致远程代码执行攻击。

受影响的 Spring 产品和版本

  • Spring Data Commons 1.13到1.13.10(Ingalls SR10)
  • Spring Data REST 2.6到2.6.10(Ingalls SR10)
  • Spring Data Commons 2.0到2.0.5(Kay SR5)
  • Spring Data REST 3.0到3.0.5(Kay SR5)
  • 较旧的、不受支持的版本也受影响

缓解措施

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

  • 2.0.x用户应升级到2.0.6
  • 1.13.x用户应升级到1.13.11
  • 较旧的版本应升级到受支持的分支

已修复此问题的版本包括

  • Spring Data REST 2.6.11(Ingalls SR11)
  • Spring Data REST 3.0.6(Kay SR6)

无需其他缓解措施。

请注意,端点的身份验证和授权(Spring Security都提供)的使用将此漏洞的暴露限制在授权用户。

致谢

此问题由GoSecure Inc.的Philippe Arteau识别并负责任地报告。

参考

领先一步

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

了解更多

获取支持

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

了解更多

即将举行的活动

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

查看全部