关于Apache Struts2(S2-046)漏洞情况的通报
发布日期: 2017-03-21

近日,互联网上披露了有关Apache Struts2 (S2-046)远程代码执行漏洞(CNNVD-201703-152)的情况。该漏洞与Apache Struts2 (S2-045)远程代码执行漏洞原理相同,仅使用了不同的攻击向量。目前,Apache官方已针对该漏洞发布安全公告,已通过升级方式修复Apache Struts2 (S2-045)远程代码执行漏洞的用户不在该漏洞影响范围内。国家信息安全漏洞库(CNNVD)对此进行了跟踪分析,情况如下:
        一、漏洞简介
        Apache Struts是美国阿帕奇(Apache)软件基金会负责维护的一个开源项目,是一套用于创建企业级Java Web应用的开源MVC框架,主要提供两个版本框架产品:Struts 1和Struts 2。 
        Apache Struts 2.3.5 - 2.3.31版本及2.5 - 2.5.10版本存在远程代码执行漏洞(CNNVD-201703-152,CVE-2017-5638)。该漏洞与Apache Struts2 (S2-045)远程代码执行漏洞原理基本相同,均是由于上传功能的异常处理函数没有正确处理用户输入的错误信息,导致远程攻击者可通过发送恶意的数据包,利用该漏洞在受影响服务器上执行任意命令。
        二、漏洞危害
        攻击者可通过发送恶意构造的HTTP数据包利用该漏洞,在受影响服务器上执行系统命令,进一步可完全控制该服务器,造成拒绝服务、数据泄露、网站造篡改等影响。由于该漏洞利用无需任何前置条件(如开启dmi,debug等功能)以及启用任何插件,因此漏洞危害较为严重。
        三、修复措施
        目前,Apache官方已针对该漏洞发布安全公告,并且漏洞利用代码已被公布在互联网上,请受影响用户及时检查是否受该漏洞影响。另外,已通过升级方式修复了Apache Struts2 (S2-045)远程代码执行漏洞的用户,不在该漏洞影响的范围内。
        【自查方式】
        用户可查看web目录下/WEB-INF/lib/目录下的struts-core.x.x.jar文件,如果这个版本在Struts2.3.5 到 Struts2.3.31 以及 Struts2.5 到 Struts2.5.10之间则存在漏洞。
        【升级修复】
        受影响用户可升级版本至Apache Struts 2.3.32 或 Apache Struts 2.5.10.1以消除漏洞影响。
        官方公告: https://cwiki.apache.org/confluence/display/WW/S2-046
        【临时缓解】
        如用户不方便升级,可采用官方发布的以供应急使用的Jakarta插件版本,下载链接如下:
        https://github.com/apache/struts-extras
        或改用其他Multipart parser应用,如Pell等,相关链接如下:
        https://cwiki.apache.org/confluence/display/S2PLUGINS/Pell+Multipart+Plugin

CNNVD将继续跟踪上述漏洞的相关情况,及时发布相关信息。如有需要,可与CNNVD联系。
        联系方式: cnnvd@itsec.gov.cn