vlambda博客
学习文章列表

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

    概述   


网络威胁数据联盟成员单位“深圳网安检测”近日监测发现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


-END-


来源:广东省网络安全应急响应中心