作为一家专业的网络安全服务供应商,圣博润特别注重对最新安全漏洞的发现和追踪,以“及时性、准确性、层次性”为宗旨,为用户提供漏洞预警、通告及响应服务。
一、Struts2简介
Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。
Apache 官网于2020年8月13日发布安全公告表明,Struts2由于配置不当,攻击者在一定条件下可导致远程命令执行漏洞,漏洞编号为S2-059。建议使用相关版本的用户尽快升级到最新版本。
二、漏洞描述
三、漏洞原理
该漏洞(CVE-2019-0230)源于Apache Struts的框架在被强制使用时,会对标签的属性进行二次求值,这可能导致远程代码执行。只有在Struts标签属性中强制使用OGNL表达式时,才能触发漏洞。
四、修复方案
1、目前官方已发布补丁,用户可升级至最新版本。
2、若不方便升级的用户,可以参考Struts官方提供的缓解措施:
a)将输入参数的值重新分配给某些Struts的标签属性时,请始终对其进行验证。
b) 考虑激活Proactive OGNLExpression Injection Protection。
五、资料参考
https://cwiki.apache.org/confluence/display/WW/S2-059