漏洞编号:CVE-2017-9805
漏洞作者:Man Yue Mo <mmo at semmle dot com>
影响版本:Struts 2.5 – Struts 2.5.12,Struts 2.1.2 – Struts 2.3.33
漏洞等级:严重
漏洞简述:当启用 Struts REST的XStream handler去反序列化处理XML请求,可能造成远程代码执行漏洞。
漏洞描述:
当启用 Struts REST的XStream handler去反序列化处理一个没有经过任何类型过滤的XStream的实例,可能导致在处理XML时造成远程代码执行漏洞。
漏洞POC:暂不公开
验证截图:
修复建议:
1. 升级Apache struts 2.5.13或2.3.34版本
2. 如果系统没有使用Struts REST插件,那么可以直接删除Struts REST插件,或者在配置文件中加入如下代码,限制服务端文件的扩展名
<constant name="struts.action.extension" value="xhtml,,json" />
升级注意事项:
如果选择将 Struts2 框架升级到 Struts 2.5.13 或者 Struts 2.3.34,有可能造成某些 REST actions 工作不正常,此时请开发人员参考新版本 Struts2 框架引入的新的接口来解决此问题:
org.apache.struts2.rest.handler.AllowedClasses
org.apache.struts2.rest.handler.AllowedClassNames
org.apache.struts2.rest.handler.XStreamPermissionProvider
参考: