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)安全威胁通告
绿盟科技发布安全威胁通告,
近日,发布了更新补丁修复了一个在数据绑定上存在的一个漏洞()。该漏洞源于在的数据绑定上没有指定相关的具体属性,从而导致恶意的表达式可以通过表单提交并且被执行,导致远程代码执行。在受影响的版本中,该漏洞可以通过更改默认配置以及提升编码规范来规避,官方也已经发布了相关补丁修复了该漏洞。
参考链接:
受影响的版本
- Spring Web Flow 2.4.0 – 2.4.4
注:官方停止支持的更早的版本也受影响。
不受影响的版本
- Spring Web Flow 2.4.5
规避方案
官方已经发布了新版本,请受影响的用户及时更新升级至最新的版本来防护该漏洞。官方同时建议用户应该更改数据绑定的默认设置来确保提交的表单信息符合要求来规避类似恶意行为。
参考链接:
绿盟科技声明
本安全公告仅用来描述可能存在的安全问题,绿盟科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,绿盟科技以及安全公告作者不为此承担任何责任。绿盟科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经绿盟科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。
原文发布时间:2017年6月12日
本文由:安全加发布,版权归属于原作者
原文链接:http://toutiao.secjia.com/spring-webflow-rce-cve-2017-4971
本文来自云栖社区合作伙伴安全加,了解相关信息可以关注安全加网站