公告编号:NSFCSA-20160427-01
CVE ID:CVE-2016-3081
修改说明: v1.0 2016-04-27 初始发布
受影响的软件及系统
Apache Struts 2.3.18 - 2.3.28(除去2.3.20.3和2.3.24.3)
不受影响的软件及系统
? Apache Struts 2.3.18以下版本
? Apache Struts 2.3.20.3
? Apache Struts 2.3.24.3
? Apache Struts 2.3.28.1
综述
Apache Struts2公布的CVE-2016-3081漏洞,在用户开启动态方法调用的情况下,攻击者通过提交精心构造请求,可远程执行任意命令。
Apache Struts2已经在2.3.20.3、2.3.24.3和2.3.28.1中修复了此安全问题。
分析
Struts2 是第二代基于Model-View-Controller (MVC)模型的web应用框架。 Struts2是java企业级web应用的可扩展性的框架。它是WebWork和Struts社区合并后的产物。
Apache Struts2在2.3.18版本之前,对于动态方法调用使用的是反射的方法,但是在2.3.18版本开始启用了OGNL表达式处理这种功能,但由于此功能内容可以被用户操控,导致攻击者可以构造OGNL表达式实现代码执行。
解决方法
如果不能及时安装补丁,建议采用如下防护措施:
* 禁用动态方法调用。
修改Struts2的配置文件,如下所示:
注意:禁用动态方法调用有可能导致正常功能失效。
厂商状态
厂商已经发布了最新版本2.3.20.3、2.3.24.3和2.3.28.1以修复此安全问题,强烈建议Apache Struts2用户立刻升级到最新版本。