通过 JDK 9+ 上的 Data Binding 实现 Spring Framework RCE 漏洞
目的是尽可能集中目前关于该漏洞的公开信息,并能够知道在这种情况下应采取什么行动。
需要满足以下条件(AND):
目前,该漏洞无法通过此方式利用。但请注意,这个漏洞更为通用,因此可能存在其他利用方式。
Spring Framework
更早或不再支持的版本也受影响。
Spring Framework
如果无法修补漏洞,Spring 发布了一些变通方案。
Apache Tomcat 已发布了 3 个新版本,提供适当的保护:10.0.20、9.0.62 和 8.5.78,建议将其作为 Spring Framework 升级之外的附加保护层。
Spring Boot 2.6.6 和 2.5.12 已发布,它们依赖于 Spring Framework 5.3.18。
可以使用工具 https://github.com/hillu/local-spring-vuln-scanner (镜像) 来检测易受 Spring4Shell 攻击的实例。 一个可能的执行示例如下:
./local-spring-vuln-scanner --verbose --log </path/to/file.log> </path/to/app1> </path/to/appN>
我们为 Wazuh 开发了一个检测规则,您可以在本仓库的 "detection" 目录中找到它,该规则基于一系列攻击指标(IOA)能够检测到攻击尝试。
有关于一个提交的猜测,认为该提交是为了弃用 SerializationUtils.deserialize(...) 方法而做的确认。但该类并不暴露给外部输入,且该弃用与此漏洞无关。
与 Spring Cloud Function 的 CVE 存在混淆:该 CVE 恰好在此漏洞报告之前发布,即 CVE-2022-22963。同样与此漏洞无关。
TryHackMe 创建了一个 Spring4Shell 的交互式利用实验室