您的当前位置: 首页 > 通知公告 > 公告 > 新闻详情

Apache Struts2存在S2-045远程代码执行漏洞的安全公告

发布时间:2017年03月09日    来源:信息化和网络安全处

一、漏洞情况分析

Struts2是第二代基于Model-View-Controller(MVC)模型的java企业级web应用框架,并成为当时国内外较为流行的容器软件中间件。jakarta是apache组织下的一套Java解决方案的开源软件的名称,包括很多子项目。Struts就是jakarta的紧密关联项目。

根据CNVD技术组成员单位——杭州安恒信息技术有限公司提供的分析情况,基于Jakarta Multipart parser的文件上传模块在处理文件上传(multipart)的请求时候对异常信息做了捕获,并对异常信息做了OGNL表达式处理。但在在判断content-type不正确的时候会抛出异常并且带上Content-Type属性值,可通过精心构造附带OGNL表达的URL导致远程代码执行。

CNVD对漏洞的综合评级均为“高危”。由于struts 2.3.5之前的版本存在S2-016漏洞,因此有较多升级后的Apache struts2的版本为2.3.5及以上版本,极有可能受到漏洞的影响。

二、漏洞影响范围

受漏洞影响的版本为:Struts2.3.5-Struts2.3.31, Struts2.5-Struts2.5.10。截至2017年3月7日13时,互联网上已经公开了漏洞的攻击利用代码,同时已有安全研究者通过CNVD网站、补天平台提交了多个受漏洞影响的省部级党政机关、金融、能源、电信等行业单位以及知名企业门户网站案例。根据CNVD秘书处抽样测试结果,互联网上采用Apache Struts 2框架的网站(不区分Struts版本,样本集>500,覆盖政府、高校、企业)受影响比例为60.1%。

三、漏洞处置建议

Apache Struts官方已在发布的新的版本中修复了该漏洞。建议使用Jakarta Multipart parser模块的用户升级到Apache Struts版本2.3.32或2.5.10.1。除了升级struts版本外,为有效防护漏洞攻击,建议用户采取主动检测、网络侧防护的方法防范黑客攻击:

(一)无害化检测方法(该检测方法由安恒公司提供)

在向服务器发出的http请求报文中,修改Content-Type字段:

Content-Type: %{#context['com.opensymphony.xwork2.dispatcher.HttpServletResponse'].addHeader('vul','vul')}.multipart/form-data,如返回response报文中存在vul:vul字段项则表明存在漏洞。

(二)网络侧防护技术措施

建议在网络防护设备上配置过滤包含如下

#nike='multipart/form-data' 以及

#container=#context['com.opensymphony.xwork2.ActionContext.container' 字段串(及相关字符转义形式)的URL请求。

CNCERT/CNVD已着手组织国内安全企业协同开展相关检测和攻击监测相关工作,后续将再次汇总处置工作情况。

2017年3月8日

相关新闻

省纪委驻工业和信息化厅纪检组
举报电话(传真):0311-87800465
举报邮箱:jijianzu@ii.gov.cn
省工业和信息化厅违法行政投诉
举报电话(传真):0311-87908719
举报邮箱:wfxzts@ii.gov.cn
钢铁、水泥、玻璃落后产能
举报电话(传真):0311-87800013
举报邮箱:yxjcj@ii.gov.cn
举报地址:石家庄市和平西路402号
邮编:050071
打击地条钢违法行为举报电话
举报电话:0311-87908738
举报地址:石家庄市和平西路402号
邮编:050071