首页 -> 安全研究

安全研究

紧急通告
绿盟科技紧急通告(Alert2013-07)

NSFOCUS安全小组(security@nsfocus.com)
http://www.nsfocus.com

Apache Struts2 includeParams属性远程命令执行漏洞

发布日期:2013-05-23

CVE ID:CVE-2013-1966

受影响的软件及系统:
====================
Apache Struts 2.0.0 - Apache Struts 2.3.14.1

综述:
======
Apache Struts2在处理s:a和s:url标签的includeParams属性时存在一个安全漏洞,攻击者可以通过提交带有恶意的Ongl表达式,远程执行任意命令。

目前Apache Struts2已经在2.3.14.2中修补了这一漏洞和另外一个showcase应用相关的漏洞。强烈建议Apache Struts2用户检查您是否受此问题影响,并尽快升级到最新版本。

分析:
======
Struts2 是第二代基于Model-View-Controller (MVC)模型的java企业级web应用框架。它是WebWork和Struts社区合并后的产物。

Apache Struts2的s:a和s:url标签都提供了一个includeParams属性。此属性允许使用的值包括none、get、all。当该属性被设置为get或all时,Apache Struts2会将用户提交的参数值作为Ognl表达式执行。攻击者可以提交带有恶意的Ongl表达式,达到执行任意Java代码的目的。

只要基于Apache Struts2开发的JSP代码中使用了url/a标签并且设置了includeParams属性为all或get,远程攻击者即可利用此漏执行任意命令。

解决方法:
==========
本地验证是否受此问题影响:

搜索应用代码中所有的jsp文件,检测其中是否存在<s:a>或<s:url>这样的标签。如果存在,则进一步检测该标签中是否设置了includeParams属性为get或者all。若符合此条件,则存在该漏洞。

例如:
<s:url id="url" action="HelloWorld" includeParams="get">
<s:a includeParams="all">

如果您不能立刻安装最新补丁,可以将找到的问题代码中includeParams参数暂时设置为none。注意:这可能导致相关代码的无法执行原有正常功能。

厂商状态:
==========
厂商原本宣称2.3.14.1修复了此漏洞,但经绿盟科技验证该版本并未彻底修补好这个漏洞,我们已经通报给厂商并得到确认,目前厂商已经发布2.3.14.2,已彻底修复此安全漏洞。

厂商安全公告:S2-014
链接:https://cwiki.apache.org/confluence/display/WW/S2-014

附加信息:
==========
1. https://cwiki.apache.org/confluence/display/WW/S2-014
2. https://cwiki.apache.org/confluence/display/WW/S2-013
3. http://www.inbreak.net/archives/487
4. http://www.nsfocus.net/index.php?act=alert&do=view&aid=137

声 明
==========

本安全公告仅用来描述可能存在的安全问题,绿盟科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,绿盟科技以及安全公告作者不为此承担任何责任。绿盟科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经绿盟科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。

关于绿盟科技
============

绿盟科技(NSFOCUS Co., Ltd.)是中国网络安全领域的领导企业,致力于网络和系统安全问题的研究、高端网络安全产品的研发、销售与网络安全服务,在入侵检测/保护、远程评估、 DDoS攻击防护等方面提供具有国际竞争能力的先进产品,是国内最具安全服务经验的专业公司。有关绿盟科技的详情请参见: http://www.nsfocus.com

© 2024 绿盟科技