近日,国家信息安全漏洞库(CNNVD)接到白帽汇、启明星辰和绿盟科技报送的有关Apache Struts2存在远程代码执行漏洞(CNNVD-201706-914)的情况。9月5日,Apache官方网站针对上述漏洞发布了安全公告(S2-052)。CNNVD对此进行了跟踪分析,情况如下:
一、漏洞简介
Apache Struts2是Apache基金会发布的一款实现了MVC模式的中间件软件,广泛应用于Web开发和大型网站建设。
Apache Struts 2.5 - Struts 2.5.12版本的REST插件存在远程代码执行漏洞(CNNVD-201706-914,CVE-2017-9805)。当Struts2通过REST插件使用XStream的实例xstreamhandler处理反序列化XML有效载荷时没有进行任何过滤,导致远程攻击者可以利用该漏洞构造恶意的XML内容,进而获取业务数据或服务器权限,执行任意代码。
二、漏洞危害
Apache Struts 2.5 - Struts 2.5.12版本以及2.3.33版本受该漏洞影响,攻击者可能利用该漏洞远程执行代码,但是存在远程指令执行回显的技术限制以及需要有REST插件应用的前提条件。
三、修复措施
目前,Apache官方已针对上述漏洞发布了升级补丁,部署Apache Struts2的单位,应及时检查所使用的Struts2版本是否在受影响范围内。如受影响,可升级至Struts2 2.5.13版本或2.3.34版本,链接如下:
https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.13
https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.3.34
【注】新版本使用的默认限制策略会导致REST的一些函数停止工作,会对一些业务造成影响,建议使用以下新的接口:
org.apache.struts2.rest.handler.AllowedClasses
org.apache.struts2.rest.handler.AllowedClassNames
org.apache.struts2.rest.handler.XStreamPermissionProvider
若无法及时升级至新版本,可采用如下临时修复方案:
1.停止使用REST插件。
2.限制服务端扩展类型:
本报告由CNNVD技术支撑单位——北京白帽汇科技有限公司、北京启明星辰信息安全技术有限公司、北京神州绿盟信息安全科技股份有限公司提供支持。
CNNVD将继续跟踪上述漏洞的相关情况,及时发布相关信息。如有需要,可与CNNVD及时联系。
联系方式: cnnvd@itsec.gov.cn