【漏洞预警】关于 Apache Struts 2 (S2-037)漏洞情况的通报

admin 2022-10-09 17:46:35 CNNVD预警 来源:ZONE.CI 全球网 0 阅读模式

       近日,互联网上披露了有关Apache Struts2存在远程代码执行漏洞(CNNVD-201606-379)的情况。由于Apache官方针对S2-033漏洞发布的安全公告未完全修复漏洞,导致该漏洞通过其他方式得以触发。6月9日,Apache Wiki网站针对该漏洞发布了修复方案(S2-037)。国家信息安全漏洞库(CNNVD)对此进行了跟踪分析,详细分析情况如下:

一、漏洞简介

       Apache Struts2是Apache基金会发布的一款实现了MVC模式的中间件软件,广泛应用于Web开发和大型网站建设。

       Apache Struts2.3.20版本至2.3.28.1版本中存在远程代码执行漏洞(漏洞编号:CNNVD-201606-379,CVE-2016-4438)。

       Apache官方网站于2016年6月1日针对Struts2远程代码执行漏洞发布了安全公告S2-033,由于该升级方案并未对漏洞进行任何修复,漏洞仍然存在,导致攻击者在S2-033漏洞触发时通过另一入口注入恶意表达式,从而实现远程代码执行。

二、漏洞危害

       由于Struts2广泛应用于大型互联网企业、政府、金融机构等网站建设,影响范围较广。根据CNNVD数据统计,目前超过3万个网站使用了Struts2。

       远程攻击者可利用上述漏洞,对受影响的服务器实施远程攻击,从而导致任意代码执行或服务器拒绝服务。

三、对比分析

       由于近期Apache Struts 2爆出多个远程代码执行漏洞(S2-032、S2-033、S2-037),为此CNNVD对以上漏洞进行对比分析:

       三个漏洞的攻击原理基本一致,都是通过操控ActionMapping中的method属性注入恶意表达式导致远程代码执行,而不同之处在于前置条件和操控方式,具体如下所示:

       1. Apache Struts2远程代执行漏洞S2-032(CNNVD-201604-585,CVE-2016-3081)

       前置条件:需开启动态方法调用。

       操控方式:通过参数名传入。

       2. Apache Struts2远程代码执行漏洞S2-033(CNNVD-201606-150,CVE-2016-3087)

       前置条件:需开启动态方法调用,并且使用rest插件

       操控方式:通过/order/1!xxxx方式传入。

       3.Apache Struts2远程代码执行漏洞S2-037(CNNVD-201606-379,CVE-2016-4438)

       前置条件:需使用rest插件

       操控方式:通过actionName/id/xxxx方式传入。

四、修复措施

       1、部署Apache Struts2并使用REST插件的单位,应及时检查所使用的Struts2版本是否在受影响范围内。如受影响,可采取以下缓解方案:

       (1)在mapping.setMethod(fullName.substring(lastSlashPos + 1));加入cleanup ActionName方法,以实现对method成员的过滤。

       (2)将Struts2升级到最新版本2.3.29。

       公告链接:https://cwiki.apache.org/confluence/display/WW/S2-037。

       2、部署受影响Struts版本的单位应密切关注Apache官方网站发布的相关信息,及时修复漏洞,消除隐患。

       本报告由杭州安恒信息技术有限公司(CNNVD技术支撑单位)、北京长亭科技有限公司提供支持。

       CNNVD将继续跟踪上述漏洞的相关情况,及时发布相关信息。如有需要,可与CNNVD及时联系。

       联系方式:[email protected]

weinxin
特别声明
本站(ZONE.CI)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
评论:0   参与:  0