近日发现Apache官方发布了Apache Struts2存在远程代码执行漏洞的风险通告(CVE-2021-31805),远程攻击者可利用该漏洞对受影响的服务器实施远程攻击,导致任意代码执行从而控制目标系统。Apache Struts 2是一个应用非常广泛的Java Web开源框架,普遍用于大型互联网企业、政府、金融机构等行业中的Web开发和网站建设,影响范围较广,危害较大。请各行业单位及时自查该框架部署情况,并综合考虑自身业务情况进行版本更新修复,以防遭受黑客攻击。
ApacheStruts 2是美国阿帕奇(Apache)软件基金会负责维护的一个开源项目,是一套用于创建企业级Java Web应用的开源MVC框架,用于开发Java EE网络应用程序的开放源代码网页应用程序架构。它利用并延伸了JavaServlet API,鼓励开发者采用MVC架构。
由于对漏洞(CVE-2020-17530)的修复不完整,导致输入验证不正确。如果开发人员使用“ %{...} ”语法应用强制 OGNL 评估,标签的一些属性仍然可以执行双重评估。对不受信任的用户输入使用强制 OGNL 评估可能会导致远程代码执行。
漏洞名称:ApacheStruts2 远程代码执行漏洞
漏洞编号:CVE-2021-31805
危害等级:高
受影响版本
安全版本
目前,Apache官方已发布安全版本,请及时下载更新,若相关用户暂时无法进行升级操作,可使用以下措施进行临时缓解:
1. 将输入参数的值重新分配给某些Struts的标签属性时,始终对其进行验证,不要在值以外的标签属性中使用%{...} 语法引用用户可修改的输入;
https://struts.apache.org/download.cgi#struts-ga
[1]
https://struts.apache.org/security/#proactively-protect-from-ognl-expression-injections-attacks-if-easily-applicable
[2]
https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.30
信息来源: 广东省网络安全应急响应中心