1. 漏洞描述
- 漏洞描述:Struts2 REST插件的XStream组件存在反序列化漏洞,使用XStream组件对XML格式的数据包进行反序列化操作时,未对数据内容进行有效验证,存在安全隐患,可被远程攻击。
- 漏洞编号:CVE-2017-9805
- 漏洞作者:lgtm.com的安全研究员
- 影响版本:Version 2.5.0 to 2.5.12 和 Version 2.3.0 to 2.3.33
- 漏洞等级:高危
2. 漏洞简介
Question | Description |
---|---|
Who should read this | All Struts 2 developers and users |
Impact of vulnerability | A RCE attack is possible when using the Struts REST plugin with XStream handler to deserialise XML requests |
Maximum security rating | Critical |
Recommendation | Upgrade to Struts 2.5.13 or Struts 2.3.34 |
Affected Software | Struts 2.1.2 - Struts 2.3.33, Struts 2.5 - Struts 2.5.12 |
Reporter | Man Yue Mo (lgtm.com / Semmle). More information on the lgtm.com blog: https://lgtm.com/blog |
CVE Identifier | CVE-2017-9805 |
3. 漏洞分析
3.1 漏洞说明
本次漏洞触发点是REST插件在解析请求中的xml文件时,调用了XStreamHandler,传入的数据会被默认进行反序列化,如果当传入的xml是个经过XStream序列化的恶意对象时,便造成反序列化漏洞。
3.2 漏洞原理分析
本次漏洞的成因由两部分组成,一个是 Struts2 REST插件(struts2-rest-plugin-2.x.jar)本身没有对进入的数据进行安全检查,导致攻击者可以传入恶意的xml对象可以传入到XStream里。另一个是XStream在反序列化传入的