2018年8月22号, Apache Struts2 官方发布了安全通告以及补丁,披露了一个远程命令执行漏洞。漏洞编号为CVE-2018-11776(S2-057)。
一、漏洞详情
Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。action元素没有设置名称空间属性,或者使用了通配符名称空间将由用户从uri传递并解析为OGNL表达式,最终导致远程代码执行漏洞。
二、影响范围
Struts2.3 - Struts 2.3.34
Struts2.5 - Struts 2.5.16
三、修复方案
Struts2.3.x 版本升级到 2.3.35
https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.3.35
Struts2.5.x 版本升级到 2.5.17
https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.17