3月11日,CNVD收录了Apache Struts 2存在的拒绝服务和ClassLoader安全绕过漏洞(CNVD-2014-01552,对应CVE-2014-0050和CVE-2014-0094),官方同步提供了Apache Struts 2.3.16.1作为升级版本。4月23日晚,安全人员研究发现其提供的升级版本并未完全修复漏洞,相关安全机制可被绕过,对互联网上应用Apache Struts2的大量服务器构成拒绝服务和远程控制威胁。
一、漏洞成因和威胁
根据分析,Apache Struts 2.0.0-2.3.16版本的默认上传机制是基于Commons FileUpload 1.3版本,其附加的ParametersInterceptor允许访问 'class' 参数(该参数直接映射到getClass()方法),并允许控制ClassLoader。在具体的Web容器部署环境下(如:Tomcat),攻击者利用Web容器下的Java Class对象及其属性参数(如:日志存储参数),可向服务器发起远程代码执行攻击,进而植入网站后门控制网站服务器主机。
目前,已经验证的测试案例表明Tomcat服务器易被发起拒绝服务或远程渗透攻击,同时CNVD认为ClassLoader安全绕过漏洞可进一步涉及部署其他Web容器的网站服务器。CNVD对该漏洞的综合评级为“高危”。
二、漏洞处置措施和建议
至24日17时,ApacheStruts2官方未提供进一步的修复方法,仅在github网站上提出新的修复措施,但相关修复措施目前被验证仍然存在绕过风险。目前,国内多家安全机构也提出了临时防护措施,CNVD综合评估认为,由于黑客的攻击代码可根据部署环境以及调用参数的不同而变化出多种形式,不排除目前防护措施未来存在被绕过的可能。
建议相关用户在Web服务器上一方面要积极采用应用层过滤的防护措施,同时也要及时关注Apache Struts2官方发布的最新漏洞补丁信息。
CNVD将持续监测后续攻击情况,包括利用代码变种以及网站后门植入攻击等,如需技术支援,请联系邮箱:vreport@cert.org.cn,电话:010-82990286。
注:CNVD成员单位启明星辰、绿盟科技公司提供了漏洞分析文档,CNVD成员单位知道创宇、奇虎360公司以及国内的翰海源公司提供了部分研判支持。
参考链接:
1、漏洞信息
http://www.cnvd.org.cn/flaw/show/CNVD-2014-01552
http://struts.apache.org/release/2.3.x/docs/s2-020.html
2、修复措施参考:
https://github.com/apache/struts/commit/aaf5a3010e3c11ae14e3d3c966a53ebab67146be(Apache Struts 2官方提供的修复措施,尚未完善)
http://blog.vulnhunt.com/index.php/2014/04/24/apache_struts2_0day/