新闻中心

    新闻中心  >  Struts2爆发高危漏洞,深信服提供检测防御解决方案
    Struts2爆发高危漏洞,深信服提供检测防御解决方案
    背景图 2021-07-29 00:00:00
    8月22日,Apache wiki更新了一个Struts2的远程代码执行漏洞(S2-057),漏洞威胁等级为高危,漏洞对应的CVE编号为CVE-2018-11776。由于漏洞POC已经暴露,深信服紧急预警,提醒广大Stutst2用户做好安全防护措施。

    漏洞名称:Struts2远程代码执行漏洞(S2-057)
    漏洞类型:远程代码执行漏洞
    漏洞威胁:高危
    漏洞利用难度:容易

    漏洞分析


    Struts2是一个基于MVC设计模式的Web应用框架。在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts2可以理解为WebWork的更新产品。


    漏洞说明


    Struts2 中定义struts-actionchaining.xml配置时如果没有设置namespace的值,并且上层动作配置中并没有设置或使用通配符namespace时,可能会导致远程代码执行漏洞的发生。同样也可能因为url标签没有设置value和action的值,并且上层动作并没有设置或使用通配符namespace,从而导致远程代码执行漏洞的发生。

    据统计,在全球范围内对互联网开放Struts2的资产数量多达6,343台,其中归属中国地区的受影响资产数量为1,218台。具体数据如下图:

    漏洞复现


    触发此漏洞的前提是:


    • 使用了Struts 2.3 - Struts 2.3.34,Struts 2.5 - Struts 2.5.16版本的Struts2的框架struts-actionchaining.xml配置文件中的 中没有为namespace赋值,并且配置了重定向 


    此漏洞利用比较简单,只需要在url构造ognl表达式,再加上配置文件中的action标签中的name属性值,并以.action结尾,如下图所示:

    访问即可看到构造的ognl表达式已经被执行。


    路径跳转到 下配置的action文件路径下,S2-057漏洞被成功的利用。

    影响版本


    Apache Struts2 >=2.3,<=2.3.34


    Apache Struts2 >=2.5,<=2.5.16


    以及其他一些不受支持的Struts版本也可能受到影响。

    解决方案


    漏洞检测


    深信服安全云已完成该漏洞的检测更新,对所有用户网站探测,保障用户安全。不清楚自身业务是否存在漏洞的用户,可注册 信服云眼账号,获取30天免费安全体验。


    注册地址:https://saas.sangfor.com.cn


    漏洞修复


    目前Apache官方已经在发布的新版本中修复了该漏洞,建议用户及时下载最新版本(2.3.35或2.5.17版本)并更新。


    下载地址:https://archive.apache.org/dist/struts/

    目前官方提供了临时修复方案:当上层动作配置中没有设置或使用通配符namespace时,验证所有XML配置中的namespace,同时在JSP中验证所有url标签的value和action。

    漏洞防御


    深信服 下一代防火墙可轻松防御此漏洞,部署深信服下一代防火墙的用户开启安全防护规则,可轻松抵御此高危风险。其中,AF最新版本8.0.5,针对struts2攻击的原理,从根本上解决了所有已知、未知的struts2攻击,用户无需再担心struts2的安全问题。

    深信服云盾已第一时间从云端自动更新防护规则,云盾用户无需操作,即可轻松、快速防御此高危风险。

    咨询与服务


    深信服安全云平台提供24小时紧急事件联系电话400-630-6430 ,按1选择技术支持服务,输入服务号18174295709按 #号键开始热线服务,转5进入云眼云盾服务。(人工电话服务截止日期2018-8-30)