Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。3月21日凌晨,惠普社区发布S2-046的漏洞,该漏洞与S2-045原理相同,只是在触发区域在filename字段中。
S2-046 PoC(来源:https://community.hpe.com/t5/Security-Research/Struts2-046-A-new-vector/ba-p/6949723# )
漏洞名:Struts2远程代码执行(类似S2-045)
影响版本:<2.3.32 <2.5.10.1
漏洞描述:
当上传的文件的Content-Type无效时,struts返回错误信息时调用了表达式使得命令被执行。
修复方案:
1. 严格过滤 Content-Type 、filename里的内容,严禁ognl表达式相关字段。
2. 如果您使用基于Jakarta插件,请升级到Apache Struts 2.3.32或2.5.10.1版本。
上次S2-045的漏洞预警发布后,如果升级了框架,则本次漏洞不会形成风险;使用临时补丁的用户则需注意,仍需升级框架才可以保证安全。