中心首页 » 安全公告 » 正文

关于 Apache Struts2 远程代码执行漏洞的通告

发布时间:2022-04-15

概述


      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


危害等级:


影响范围


受影响版本

  • Struts 2.0.0 - Struts 2.5.29


安全版本

  • >= 2.5.30

解决方案


目前,Apache官方已发布安全版本,请及时下载更新,若相关用户暂时无法进行升级操作,可使用以下措施进行临时缓解:



1. 将输入参数的值重新分配给某些Struts的标签属性时,始终对其进行验证,不要在值以外的标签属性中使用%{...} 语法引用用户可修改的输入;
2. 开启ONGL表达式注入保护。

更新地址:
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