2022 年 3 月 29 日,VMware 向公众披露了 Spring 框架 中的一个漏洞。此漏洞有多个影响因素的前提条件。
- Spring 框架版本 5.3.0-5.3.17、5.2.0-5.2.19,可能还有 5.2.x 之前的软件版本
- 作为 Spring MVX 或 WebFlux 对象运行的应用程序
- Apache Tomcat 作为该应用程序的容器
- 应用程序打包为 Web 应用程序资源 (WAR)
具体而言,此漏洞的目标是 ClassLoader() 类,尽管其他类中可能存在类似的未发现的漏洞。URI 参数可以作为标准 Web 请求的一部分传递给 Tomcat,以利用此漏洞。
威胁是什么?
CVE-2022-22965 是一个可能影响已安装 Spring 框架并在 JDK 9 或更高版本上运行 Spring MVC 或 WebFlux 应用程序的系统的漏洞。与此漏洞相关的利用需要 Apache Tomcat,并且应用程序部署为 Web 应用程序资源 (WAR),但企业应考虑其他可能的利用方法。
影响是什么?
如果成功利用,Spring4Shell 漏洞可能会允许攻击者在 Web 服务器的上下文中执行任意代码(包括恶意软件)。由于需要特定的软件、版本和配置作为先决条件,企业应预期其影响小于像 Log4Shell 这样的漏洞。虽然 Spring4Shell 具有更具体的前提条件来产生影响,但 Elastic Security 仍然建议遵循官方指南进行修补和升级。
利用 Elastic 进行漏洞检测
面向社区的存储库中已经存在预构建的保护措施,这些保护措施可以通用地识别成功利用的各个方面。
此外,Elastic 提供了数十条规则,用于常见和不常见的漏洞利用后技术,这些技术可能会在入侵尝试的后期阶段出现。
工件
Elastic 面向社区的 detection-rules 存储库包含两条专门针对 Web 服务器漏洞利用后的规则。由于漏洞的不可预测性,Elastic 提供的任何漏洞利用后规则都可能有助于检测或了解与 Spring4Shell 相关的入侵尝试。对于希望更好地了解此漏洞的企业,请考虑 Elastic 社区成员 Stijn Holzhauer 撰写的这篇出色的概述。
防御建议
企业应遵循 Spring 在其官方披露声明中提供的指南,并寻求修补或升级 Spring 框架。此外,对于那些可能无法解决 Spring 中的漏洞的人,还发布了一个补丁来关闭 Apache Tomcat 中的此漏洞(最低版本 10.0.20、9.0.62、8.5.78)。此外,还可以配置 disallowedFields 来消除与数据绑定滥用相关的漏洞。
参考
- Spring Framework RCE,早期公告
- CVE-2022-22965:JDK 9+ 上通过数据绑定的 Spring Framework RCE
- 使用 Elastic Stack 检测潜在的恶意请求并探索 Java Spring Framework 中 RCE 缺陷的暴露情况。
尚未在使用 Elastic Security?您可以随时开始免费试用 14 天的 Elastic Cloud。