Spring WebFlow 远程代码执行漏洞CVE-2017-4971 绿盟科技发布安全威胁通告

简介:

Spring出现 WebFlow 远程代码执行漏洞(CVE-2017-4971), 该漏洞是去年年底提交的,CVE目前还处于保留状态。但有消息称,相关信息在5月31日被公开,据公开消息称,这个漏洞影响 Spring WebFlow 的2.4.0到2.4.4,以及更早期的版本。PoC已经公开。绿盟科技发布安全威胁通告。

Spring Web Flow 是什么

Spring Web Flow 的目标是成为管理Web应用页面流程的最佳方案。当你的应用需要复杂的导航控制,例如向导,在一个比较大的事务过程中去指导用户经过一连串的步骤的时候,SWF将会是一个功能强大的控制器。

Spring Web Flow 是 Spring 的一个子项目,其最主要的目的是解决跨越多个请求的、用户与服务器之间的、有状态交互问题,最新版本为 2.0 。

pivotal给出了漏洞描述及缓解方案

pivotal.io将该漏洞表述为Data Binding Expression漏洞,并称

默认状态下, usespringbinding属性默认是禁用的,应用程序不改变MvcViewFactoryCreator的值,但如果子元素没有声明显式的数据绑定属性,则在视图状态中的表单提交过程中,容易受到恶意的EL表达式的攻击,从而导致漏洞利用。

影响范围

  • Spring Web Flow 2.4.0 to 2.4.4
  • Older unsupported versions are also affected

缓解措施

建议相关版本的用户采取如下措施进行缓解

  • 2.4.x用户升级到2.4.5
  • 建议在视图状态中始终使用显式数据绑定声明, 以防止表单提交在不应设置的目标对象上设置字段。
  • Spring Web Flow with JSF 的用户不受到影响.

ThreatHunter进行了漏洞分析

ThreatHunter上进行的Spring WebFlow 漏洞分析称

Spring严重的漏洞历来都不算多,之前比较严重的那个问题是Spring的JavaBean的自动绑定功能,导致可以控制class,从而导致可以利用某些特性执行任意代码,但是那个漏洞比较鸡肋,不是每次都能触发。

由于Spring的框架越来越多,而且后面引入了SpringEl作为默认的表达式解析方式,所以一旦引入了类似于OGNL的表达式,很可能会带来一些安全问题,本次漏洞就是由于Spring WebFlow的数据绑定问题带来的表达式注入,从而导致任意代码执行。

绿盟科技 Spring Web Flow 远程代码执行漏洞(CVE-2017-4971)安全威胁通告

绿盟科技发布安全威胁通告,

近日,发布了更新补丁修复了一个在数据绑定上存在的一个漏洞()。该漏洞源于在的数据绑定上没有指定相关的具体属性,从而导致恶意的表达式可以通过表单提交并且被执行,导致远程代码执行。在受影响的版本中,该漏洞可以通过更改默认配置以及提升编码规范来规避,官方也已经发布了相关补丁修复了该漏洞。

参考链接:

https://pivotal.io/security/cve-2017-4971

受影响的版本

  • Spring Web Flow 2.4.0 – 2.4.4

注:官方停止支持的更早的版本也受影响。

不受影响的版本

  • Spring Web Flow 2.4.5

规避方案

官方已经发布了新版本,请受影响的用户及时更新升级至最新的版本来防护该漏洞。官方同时建议用户应该更改数据绑定的默认设置来确保提交的表单信息符合要求来规避类似恶意行为。

参考链接:

https://pivotal.io/security/cve-2017-4971

绿盟科技声明

本安全公告仅用来描述可能存在的安全问题,绿盟科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,绿盟科技以及安全公告作者不为此承担任何责任。绿盟科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经绿盟科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。


原文发布时间:2017年6月12日

本文由:安全加发布,版权归属于原作者

原文链接:http://toutiao.secjia.com/spring-webflow-rce-cve-2017-4971

本文来自云栖社区合作伙伴安全加,了解相关信息可以关注安全加网站

相关文章
|
6天前
|
安全 Java API
第7章 Spring Security 的 REST API 与微服务安全(2024 最新版)(上)
第7章 Spring Security 的 REST API 与微服务安全(2024 最新版)
24 0
第7章 Spring Security 的 REST API 与微服务安全(2024 最新版)(上)
|
6月前
|
监控 前端开发 安全
Spring-MVC使用JSR303及拦截器,增强网络隐私安全
Spring-MVC使用JSR303及拦截器,增强网络隐私安全
25 0
|
8月前
|
安全 Java 开发者
刚折腾完Log4J,又爆Spring RCE核弹级漏洞
继Log4J爆出安全漏洞之后,又在深夜,Spring的github上又更新了一条可能造成RCE(远程命令执行漏洞)的问题代码,随即在国内的安全圈炸开了锅。有安全专家建议升级到JDK 9以上,有些专家又建议回滚到JDK 7以下,一时间小伙伴们不知道该怎么办了。大家来看一段动画演示,怎么改都是“将军"。
82 1
|
2天前
|
安全 Java 数据安全/隐私保护
|
7月前
|
安全 Java 开发者
深入了解Spring Cloud Security:构建安全的分布式微服务
随着微服务架构的流行,安全性成为了构建分布式系统的关键问题之一。Spring Cloud Security是Spring家族中的一个强大工具,它提供了一系列功能,帮助开发者轻松地保护其微服务应用程序。本文将深入探讨Spring Cloud Security的各个方面,从基本概念到实际应用,帮助您构建安全的分布式微服务。
|
22天前
|
安全 Java Maven
 Spring Boot 项目代码混淆实战:保护代码安全,防止泄露
iOS加固保护是直接针对ios ipa二进制文件的保护技术,可以对iOS APP中的可执行文件进行深度混淆、加密。使用任何工具都无法逆向、破解还原源文件。对APP进行完整性保护,防止应用程序中的代码及资源文件被恶意篡改。Ipa Guard通过修改 ipa 文件中的 macho 文件中二进制数据(代码模块配置)进行操作,无需源码。不限定开发技术平台。支持oc,swift,cocos2d-x、unity3d、quick-cocos,html5 ,react native等等各种开发技术。Ipa Guard主要包含代码混淆全面、资源文件处理、不需要源代码更安全、调试信息清理、即时测试运行。
|
6月前
|
存储 安全 Java
《Spring安全配置》
《Spring安全配置》
40 1
|
6月前
|
安全 Java Go
Spring安全配置: 构建安全稳固的Java应用
Spring安全配置: 构建安全稳固的Java应用
41 0
|
6月前
|
安全 Java Go
使用Spring Security保障你的Web应用安全
使用Spring Security保障你的Web应用安全
51 0
|
6月前
|
安全 Java 数据库
Spring Boot 3 + JWT + Security 联手打造安全帝国:一篇文章让你掌握未来!
`Spring Security`已经成为`java`后台权限校验的第一选择.今天就通过读代码的方式带大家深入了解一下Security,本文主要是基于开源项目[spring-boot-3-jwt-security](https://github.com/ali-bouali/spring-boot-3-jwt-security)来讲解Spring Security + JWT(Json Web Token).实现用户鉴权,以及权限校验. 所有代码基于`jdk17+`构建.现在让我们开始吧!
631 1
 Spring Boot 3 + JWT + Security 联手打造安全帝国:一篇文章让你掌握未来!