【高危】- Apache Struts2 远程代码执行漏洞风险通告(CVE-2021-31805)
■ 漏洞描述
Apache官方发布安全通告,披露了其Struts2框架存在远程代码执行漏洞,漏洞编号CVE-2021-31805。可导致远程代码执行等危害。由于对 CVE-2020-17530 (S2-061) 的修复不完善。导致一些标签的属性仍然可以执行 OGNL 表达式,最终可导致远程执行任意代码当开发人员使用了 %{…} 语法进行强制OGNL解析时,仍有一些特殊的TAG属性可被二次解析;攻击者可构造恶意的OGNL表达式触发漏洞,从而实现远程代码执行。
 
■ 影响范围
2.0.0 <= Apache Struts <= 2.5.29
 
■ 漏洞检测
使用maven打包的项目可通过pom.xml查看当前使用的struts2版本,也可通过查看lib中的核心包查看struts版本
 
■ 漏洞修复
目前官方已发布新版本修复了此漏洞,请受影响的用户尽快更新进行防护,下载链接:https://struts.apache.org/download.cgi#struts-ga
 
■ 临时修复
若相关用户暂时无法进行升级操作,可使用以下措施进行临时缓解:
将输入参数的值重新分配给某些Struts的标签属性时,始终对其进行验证,不要在值以外的标签属性中使用%{…} 语法引用用户可修改的输入。
开启ONGL表达式注入保护
 
■ 漏洞详情
Apache官方发布安全通告,披露了其Struts2框架存在远程代码执行漏洞,漏洞编号CVE-2021-31805。可导致远程代码执行等危害。由于对 CVE-2020-17530 (S2-061) 的修复不完善。导致一些标签的属性仍然可以执行 OGNL 表达式,最终可导致远程执行任意代码当开发人员使用了 %{…} 语法进行强制OGNL解析时,仍有一些特殊的TAG属性可被二次解析;攻击者可构造恶意的OGNL表达式触发漏洞,从而实现远程代码执行。