Spring Security 安全公告

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 提供了这两种功能)可将此漏洞的暴露范围限制在授权用户。

致谢

此问题由 Yevhenii Hrushka (Yevgeniy Grushka),Fortify Webinspect 识别并负责任地报告。

参考

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 由 Alvaro Muñoz (@pwntester),Micro Focus Fortify 识别并负责任地报告。随后的 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 提供了这两种功能)可将此漏洞的暴露范围限制在授权用户。

致谢

此问题由 Alvaro Muñoz (@pwntester),Micro Focus Fortify 识别并负责任地报告。

参考

CVE-2018-1271:Windows 上 Spring MVC 中的目录遍历

| 2018 年 4 月 5 日 | CVE-2018-1271

描述

Spring Framework 5.0 至 5.0.4、4.3 至 4.3.14 以及旧版不受支持的版本允许应用程序配置 Spring MVC 以服务静态资源(例如 CSS、JS、图像)。当从 Windows 上的文件系统(而不是类路径或 ServletContext)提供静态资源时,恶意用户可以使用特制 URL 发送请求,这可能导致目录遍历攻击。

受影响的 Spring 产品和版本

  • Spring Framework 5.0 至 5.0.4
  • Spring Framework 4.3 至 4.3.14
  • 旧版不受支持的版本也受影响

缓解措施

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

  • 5.0.x 用户应升级到 5.0.5
  • 4.3.x 用户应升级到 4.3.15
  • 旧版本应升级到受支持的分支

没有其他必要的缓解措施。

另请注意,此攻击不适用于以下应用程序

  • 不使用 Windows。
  • 不从文件系统提供文件,即不使用“file:”作为资源位置。
  • 使用已针对 CVE-2018-1199 修补的版本的 Spring Security。

致谢

此问题由 DEVCORE 的 Orange Tsai (@orange_8361) 识别并负责任地报告。

参考

CVE-2018-1272:Spring Framework 中的多部分内容污染

| 2018 年 4 月 5 日 | CVE-2018-1272

描述

Spring Framework 5.0 至 5.0.4、4.3 至 4.3.14 以及旧版不受支持的版本为客户端提供了对多部分请求的支持。当 Spring MVC 或 Spring WebFlux 服务器应用程序(服务器 A)接收来自远程客户端的输入,然后使用该输入向另一个服务器(服务器 B)发出多部分请求时,它可能会受到攻击,攻击者可以在服务器 A 发出的请求内容中插入额外的多部分内容,导致服务器 B 对其期望的部分使用错误的值。例如,如果部分内容表示用户名或用户角色,这可能导致权限提升。

为了使攻击者成功,他们必须能够猜测服务器 A 为发送到服务器 B 的多部分请求选择的边界值,这需要攻击者也控制服务器或能够通过单独的攻击媒介查看服务器 A 的 HTTP 日志。

受影响的 Spring 产品和版本

  • Spring Framework 5.0 至 5.0.4
  • Spring Framework 4.3 至 4.3.14
  • 旧版不受支持的版本也受影响

缓解措施

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

  • 5.0.x 用户应升级到 5.0.5
  • 4.3.x 用户应升级到 4.3.15

没有其他必要的缓解措施。

致谢

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

历史

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

CVE-2018-1229:Spring Batch Admin 文件上传中的存储型 XSS

| 2018 年 3 月 16 日 | CVE-2018-1229

描述

Spring Batch Admin 文件上传功能中的跨站点脚本 (XSS) 漏洞允许远程攻击者通过与文件上传功能相关的特制请求注入任意 Web 脚本或 HTML。

受影响的 Spring 产品和版本

  • Spring Batch Admin 所有版本

缓解措施

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

  • Spring Batch Admin已于2018年1月1日停止维护。建议使用Spring Cloud Data Flow来管理和监控Spring Batch作业。

致谢

此漏洞由孔文斌报告。

参考

CVE-2018-1230:Spring Batch Admin易受跨站点请求伪造攻击

中级 | 2018 年 3 月 16 日 | CVE-2018-1230

描述

Spring Batch Admin没有包含跨站点请求伪造(CSRF)保护,这可能允许攻击者创建一个恶意站点,该站点会向Spring Batch Admin发出请求。

受影响的 Spring 产品和版本

  • Spring Batch Admin 所有版本

缓解措施

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

  • Spring Batch Admin已于2018年1月1日停止维护。建议使用Spring Cloud Data Flow来管理和监控Spring Batch作业。

致谢

此漏洞由孔文斌报告。

参考

CVE-2018-1196:通过Spring Boot启动脚本进行符号链接提权攻击

| 2018年1月30日 | CVE-2018-1196

描述

Spring Boot支持一个嵌入式启动脚本,可用于轻松地将应用程序作为systemd或init.d Linux服务运行[1]。Spring Boot 1.5.9及更早版本附带的脚本容易受到符号链接攻击,这允许“run_user”覆盖并获取同一系统上任何文件的所有权。

为了发起攻击,应用程序必须安装为服务,并且“run_user”需要对服务器具有shell访问权限。

未安装为服务或未使用嵌入式启动脚本的Spring Boot应用程序不受影响。

[1] https://docs.springframework.org.cn/spring-boot/docs/1.5.x/reference/htmlsingle/#deployment-service

受影响的 Spring 产品和版本

  • Spring Boot
    • 1.5.0 - 1.5.9
    • 2.0.0.M1 - 2.0.0.M7
  • 未维护的旧版Spring Boot未经分析,也可能受到影响。

缓解措施

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

  • 1.5.x用户应更新至1.5.10
  • 2.0.x预发布用户应更新至2.0.0.RC1

致谢

此问题由来自Oracle Cloud Operations,英国的Adam Stephens发现并报告,并已负责任地报告给Pivotal。

历史

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

CVE-2018-1199:使用静态资源的安全绕过

| 2018年1月29日 | CVE-2018-1199

描述

Spring Security在处理安全约束时不考虑URL路径参数。通过添加具有特殊编码的URL路径参数,攻击者可能能够绕过安全约束。此问题的根本原因是Servlet规范中关于处理路径参数的说明不够清晰(见下文)。某些Servlet容器将路径参数包含在getPathInfo()返回的值中,而某些则不包含。Spring Security使用getPathInfo()返回的值作为将请求映射到安全约束的过程的一部分。在此特定攻击中,路径参数中使用的不同字符编码允许绕过受保护的Spring MVC静态资源URL。

受影响的 Spring 产品和版本

  • Spring Security
    • 4.1.0 - 4.1.4
    • 4.2.0 - 4.2.3
    • 5.0.0
  • Spring Framework
    • 5.0.0 - 5.0.2
    • 4.3.0 - 4.3.13
  • 未维护的旧版Spring Security和Spring Framework未经分析,也可能受到影响

缓解措施

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

  • Spring Security<ul><li>5.0.x用户应更新至5.0.1</li><li>4.2.x用户应更新至4.2.4</li><li>4.1.x用户应更新至4.1.5</li></ul>
  • Spring Framework<ul><li>5.0.x用户应更新至5.0.3</li><li>4.3.x用户应更新至4.3.14</li></ul>

作为一般预防措施,鼓励用户将公共资源和私有资源分开。例如,将静态资源分离并将其映射到/resources/public/** 和 /resources/private/** 比在一个公共根目录下混合公共和私有资源内容更可取。

致谢

此问题由NTT Comware、NTT DATA Corporation和NTT的Macchinetta Framework开发团队发现,并已负责任地报告给Pivotal。

历史

2018-01-29:初始…

CVE-2017-8028:使用userSearch和STARTTLS的Spring-LDAP身份验证允许使用任意密码进行身份验证

| 2017年10月16日 | CVE-2017-8028

描述

连接到某些LDAP服务器时,当没有绑定其他属性时,以及当使用LDAP BindAuthenticator并将org.springframework.ldap.core.support.DefaultTlsDirContextAuthenticationStrategy作为身份验证策略,并设置userSearch时,如果用户名正确,则允许使用任意密码进行身份验证。发生这种情况是因为某些LDAP供应商需要对LDAP绑定进行显式操作才能生效。

受影响的 Spring 产品和版本

  • Spring-LDAP版本1.3.0 - 2.3.1

缓解措施

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

  • 升级到Spring-LDAP版本2.3.2.RELEASE+

致谢

此漏洞由Tobias Schneider报告。

参考

抢先一步

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

了解更多

获取支持

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

了解更多

即将举行的活动

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

查看全部