近日,奇安信CERT监测到Apache官方发布安全更新,其中修复了Apache Struts2远程代码执行漏洞(CVE-2021-31805),在某些标签中若后端通过 %{...} 形式对其属性进行赋值,则将对OGNL表达式进行二次解析,从而执行恶意代码,且该漏洞是S2-061的绕过。此漏洞POC、技术细节已公开,经过奇安信CERT研判,此漏洞POC有效。鉴于此漏洞影响范围极大,建议客户尽快做好自查,及时更新至最新版本或采取缓解措施。
漏洞名称 | Apache Struts2远程代码执行漏洞 | ||
公开时间 | 2022-04-12 | 更新时间 | 2022-04-14 |
CVE编号 | CVE-2022-31805 | 其他编号 | QVD-2021-14649 |
威胁类型 | 远程代码执行 | 技术类型 | OGNL表达式注入 |
厂商 | Apache | 产品 | Struts2 |
风险等级 | |||
奇安信CERT风险评级 | 风险等级 | ||
高危 | 蓝色(一般事件) | ||
现时威胁状态 | |||
POC状态 | EXP状态 | 在野利用状态 | 技术细节状态 |
已公开 | 未发现 | 未发现 | 已公开 |
漏洞描述 | Apache Struts2 中存在远程代码执行漏洞,在某些标签中若后端通过 %{...} 形式对其属性进行赋值,则将对OGNL表达式进行二次解析,从而执行恶意代码,该漏洞是S2-061的绕过。 | ||
影响版本 | 2.0.0 <= Apache Struts2 <= 2.5.29 | ||
不受影响版本 | Apache Struts2 > 2.5.29 | ||
其他受影响组件 | 无 |
漏洞信息
ApacheStruts 2是一个用于开发JavaEE网络应用程序的开放源代码网页应用程序架构。它利用并延伸了JavaServlet API,鼓励开发者采用MVC架构。
近日,奇安信CERT监测到Apache官方发布安全更新,其中修复了Apache Struts2远程代码执行漏洞(CVE-2021-31805),在某些标签中若后端通过 %{...} 形式对其属性进行赋值,则将对OGNL表达式进行二次解析,从而执行恶意代码,且该漏洞是S2-061的绕过。此漏洞POC、技术细节已公开,经过奇安信CERT研判,此漏洞POC有效。鉴于此漏洞影响范围极大,建议客户尽快做好自查,及时更新至最新版本或采取缓解措施。
奇安信CERT已成功复现Apache Struts2 远程代码执行漏洞(CVE-2021-31805),复现截图如下:
威胁评估
漏洞名称 | Apache Struts2远程代码执行漏洞 | |||
CVE编号 | CVE-2021-31805 | 其他编号 | QVD-2021-14649 | |
CVSS 3.1评级 | 高危 | CVSS 3.1分数 | 9.8 | |
CVSS向量 | 访问途径(AV) | 攻击复杂度(AC) | ||
网络 | 低 | |||
用户认证(Au) | 用户交互 | |||
不需要 | 不需要 | |||
影响范围 | 机密性影响(C) | |||
不改变 | 高 | |||
完整性影响(I) | 可用性影响(A) | |||
高 | 高 | |||
危害描述 | Apache Struts2 中存在远程代码执行漏洞,在某些标签中若后端通过 %{...} 形式对其属性进行赋值,则将对OGNL表达式进行二次解析,从而执行恶意代码,该漏洞是S2-061的绕过。 |
处置建议
一、版本升级
目前官方已有可更新版本,用户可升级至 2.5.30 版本:https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.30
二、漏洞缓解措施
1、可通过设置所有标签中 value="" 来缓解此漏洞;
2、将org.apache.commons.collection.BeanMap 添加至 excludedClasses 黑名单中。
参考资料
[1]https://cwiki.apache.org/confluence/display/WW/S2-062
[2]http://www.openwall.com/lists/oss-security/2022/04/12/6
时间线
2022年4月14日,奇安信 CERT发布安全风险通告
声明:本文来自奇安信 CERT,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。