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 模块使用简单的内存中 STOMP 代理公开基于 WebSocket 的 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) 发现并负责任地报告。

参考

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

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

描述

结合 Spring Framework 5.0.5.RELEASE 使用 Spring Security 时,存在一个授权绕过漏洞。未经授权的恶意用户可以未经许可访问应受限制的方法。

受影响的 Spring 产品和版本

  • Spring Framework 5.0.5.RELEASE 和 Spring Security(任何版本)
  • 只有在使用 Spring Framework 5.0.5.RELEASE 和 Spring Security 方法安全时,应用程序才会受到影响。该 bug 存在于 Spring Framework 5.0.5.RELEASE 中,但只有与 Spring Security 的方法安全支持结合使用时才被视为 CVE。
  • 该 bug 仅存在于 Spring Framework 5.0.5.RELEASE 中。如果应用程序未使用 Spring Framework 5.0.5.RELEASE,则不受影响。该 bug 不影响任何 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 或更早版本结合使用时,存在属性绑定漏洞,原因是底层库 XMLBeam 未正确限制 XML 外部实体引用扩展。未经身份验证的远程恶意用户可以针对 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&gt;

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;文档</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</a> 的示例配置…

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)实现。当文件名与目标解压目录连接时,最终路径会超出目标文件夹。

这特别适用于 unzip 转换器。

只有当使用此库的应用程序接受并解压来自不受信任来源的 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 Connector 2.1.2 版本包含一个回归问题,该问题会禁用未绑定到 SSO 服务的资源服务器中的发行者验证。在具有多个 SSO 服务计划的 PCF 部署中,远程攻击者可以使用从另一个服务计划生成的令牌对使用此版本 SSO Connector 的未绑定资源服务器进行身份验证。

受影响的 Spring 产品和版本

  • Spring Cloud SSO Connector 2.1.2 版本

缓解措施

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

  • 已修复此问题的版本包括:</p><ul><li>Spring Cloud SSO Connector: 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 发现并负责任地报告。

参考

CVE-2018-1274: 使用 Spring Data 的拒绝服务

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

描述

Spring Data Commons 1.13 版本(1.13.10 之前)、2.0 版本(2.0.5 之前)以及更早的不受支持版本,存在属性路径解析器漏洞,原因是资源分配不受限制。未经身份验证的远程恶意用户(或攻击者)可以针对 Spring Data REST 端点或使用属性路径解析的端点发出请求,可能导致拒绝服务(CPU 和内存消耗)。

受影响的 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 提供的身份验证和授权,可将此漏洞的暴露范围限制在授权用户内。

致谢

此问题由 Fortify Webinspect 的 Yevhenii Hrushka (Yevgeniy Grushka) 发现并负责任地报告。

参考

CVE-2018-1275: 解决 CVE-2018-1270 的部分修复问题

严重 | 2018 年 4 月 9 日 | CVE-2018-1275

描述

此 CVE 解决了 Spring Framework 4.3.x 分支中针对 CVE-2018-1270 的部分修复问题。

Spring Framework 5.0.x 版本(5.0.5 之前)、4.3.x 版本(4.3.16 之前)以及更早的不受支持版本,允许应用程序通过 spring-messaging 模块使用简单的内存中 STOMP 代理公开基于 WebSocket 的 STOMP 端点。恶意用户(或攻击者)可以向代理构造一条消息,从而可能导致远程代码执行攻击。

受影响的 Spring 产品和版本

  • Spring Framework 5.0 至 5.0.4
  • Spring Framework 4.3 至 4.3.15
  • 更早的不受支持版本也受影响

缓解措施

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

  • 5.0.x 用户应升级到 5.0.5
  • 4.3.x 用户应升级到 4.3.16
  • 更早版本应升级到受支持的分支

无需采取其他缓解措施。

请注意,对消息使用 Spring Security 提供的身份验证和授权,可将此漏洞的暴露范围限制在授权用户内。

致谢

原始问题 CVE-2018-1270 由 Micro Focus Fortify 的 Alvaro Muñoz (@pwntester) 发现并负责任地报告。随后的 CVE-2018-1275 部分修复问题由…

CVE-2018-1270: spring-messaging 的远程代码执行

严重 | 2018 年 4 月 5 日 | CVE-2018-1270

描述

Spring Framework 5.0.x 版本(5.0.5 之前)、4.3.x 版本(4.3.16 之前)以及更早的不受支持版本,允许应用程序通过 spring-messaging 模块使用简单的内存中 STOMP 代理公开基于 WebSocket 的 STOMP 端点。恶意用户(或攻击者)可以向代理构造一条消息,从而可能导致远程代码执行攻击。

受影响的 Spring 产品和版本

  • Spring Framework 5.0 至 5.0.4
  • Spring Framework 4.3 至 4.3.15
  • 更早的不受支持版本也受影响

缓解措施

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

  • 5.0.x 用户应升级到 5.0.5
  • 4.3.x 用户应升级到 4.3.16
  • 更早版本应升级到受支持的分支

无需采取其他缓解措施。

请注意,对消息使用 Spring Security 提供的身份验证和授权,可将此漏洞的暴露范围限制在授权用户内。

致谢

此问题由 Micro Focus Fortify 的 Alvaro Muñoz (@pwntester) 发现并负责任地报告。

参考

先人一步

VMware 提供培训和认证,助您加速前进。

了解更多

获取支持

Tanzu Spring 通过一个简单的订阅即可为 OpenJDK™、Spring 和 Apache Tomcat® 提供支持和二进制文件。

了解更多

即将举行的活动

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

查看全部