【漏洞通告】Apache Struts2远程代码执行漏洞(CVE-2021-31805)
0x00 漏洞概述
CVE ID | CVE-2021-31805 | 时 间 | 2022-04-12 |
类 型 | RCE | 等 级 | 高危 |
远程利用 | 是 | 影响范围 | Apache Struts 2.0.0-2.5.29 |
攻击复杂度 | 低 | 用户交互 | 不需要 |
PoC/EXP | Poc | 在野利用 |
0x01 漏洞详情
Apache Struts2是一个基于MVC设计模式的流行的Web应用程序框架。
4月12日,Apache Struts2发布安全公告(S2-062),修复了Apache Struts2中的一个远程代码执行漏洞(CVE-2021-31805),该漏洞是 S2-061 的绕过。
由于对CVE-2020-17530的修复不完整,在Apache Struts 2.0.0-2.5.29中,如果开发人员使用 %{…} 语法应用强制 OGNL 解析,标签的某些属性仍然可被二次解析。当对标签属性中未经验证的原始用户输入进行解析时可能会导致远程代码执行。
影响范围
Apache Struts 2.0.0-2.5.29
0x02 漏洞检测
人工检测
使用maven打包的项目可通过pom.xml查看当前使用的struts2版本:
也可通过查看lib中的核心包查看struts版本
0x03 漏洞复现
武汉明嘉信技术有限公司安全团队成功复现Apache Struts2 远程代码执行漏洞(CVE-2021-31805),复现截图如下:
0x04 安全建议
目前此漏洞已经修复,建议受影响用户及时升级更新到Apache Struts 2.5.30或更高版本。
下载链接:
https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.30
缓解措施:
避免对不受信任或未经验证的用户输入使用强制 OGNL 解析。
0x03 参考链接
https://cwiki.apache.org/confluence/display/WW/S2-062
https://www.mail-archive.com/announce@apache.org/msg07237.html