IT资讯 Spring 框架存在高危 RCE 零日漏洞?核心开发者澄清

donahue · 2022-03-31 10:00:09 · 热度: 33

近日,最受欢迎的开源轻量级 Java 框架 Spring 被曝存在高危的 RCE(远程控制设备) 零日漏洞北京大学计算中心外媒 praetorianbleepingcomputer 等站点对该漏洞进行了报道。

据网上疯传的介绍,该 RCE 漏洞源于 Spring 框架核心的 SerializationUtils#dserialize 方法,该方法基于 Java 的序列化与反序列机制,可导致远程代码执行 (RCE),使用 JDK9 及以上版本皆有可能受到影响。

正在紧急修复?

从 Spring 项目的 Git 提交记录来看,在漏洞消息疯传的同时, Spring 开发者似乎在紧急处理漏洞相关的代码,比如 3 月 29日的新提交:弃用 SerializationUtils#deserialize

在这个敏感的时间点,该提交引了一些紧张情绪,很多用户在该提交下面留言,询问该提交的代码改动是否与网传的 0day RCE 漏洞相关?而 Spring 核心开发者之一 sbrannen 对此作出澄清:

弃用 SerializationUtils#deserialize 跟目前所有的漏洞都没有关系。

此提交的目的是通知使用过 SerializationUtils#deserialize 的用户:从不受信任的来源反序列化对象是危险的。

Spring 核心框架不会使用 SerializationUtils 反序列化来自不受信任来源的对象。

事实上,早在 2 月 19 日 Spring 框架的仓库就出现过对该 SerializationUtils 方法的讨论,开发者 ledoyen  就指出:基于 Java 的序列化机制,SerializationUtils#dserialize 可能导致 RCE 远程代码执行漏洞,因此他提出了弃用 SerializationUtils#dserialize 的 PR #28075

Spring 框架存在高危 RCE 零日漏洞?核心开发者澄清

由此看来,前面的提交是 ledoyen 针对该 PR 的一次代码合并,弃用 SerializationUtils#dserialize也是计划之内的事情。有人询问在该 PR 下询问“ SerializationUtils#dserialize 是否应该作为漏洞报道”时, ledoyen 也进行解释:

SerializationUtils#dserialize本身不是漏洞,使用此 工具 处理用户输入数据可能会导致 CVE,但该方法在内部作为缓存结果拦截器( CacheResultInterceptor) 使用的话,则不会导致任何漏洞。

目前, SerializationUtils#dserialize在 Spring Framework 6.0 中已弃用,而对于 5.3.x 版本,则是向 Javadoc 中添加针对 SerializationUtils 工具类的警告,以提高用户的警觉意识。

漏洞炒作!

如果确实存在,那么这个 Spring 框架 RCE 漏洞的影响将远超此前的 Log4j 或 Heartbleed ,但小编翻了一整天,也没有看到谁能真正复现此漏洞(没有完整的 Poc ,基本是开局一张马赛克图,漏洞细节全靠编)。

GitHub 上倒是有很多命名为 Spring core RCE 的新仓库,但也基本都是“懂的都懂”的谜语描述,没有真正的干货内容。

Spring 框架存在高危 RCE 零日漏洞?核心开发者澄清

目前为数不多的详细 PoC 还是故意先按 Spring 文档明确反对的用法引入易受攻击的代码,再进行漏洞攻击 ...而据郑州网络安全协会报道,甚至还有人打着 Poc 的幌子钓鱼...

Spring 框架存在高危 RCE 零日漏洞?核心开发者澄清

截至发稿时间,Spring 团队没有对该漏洞发表任何官方公告:官方博客的最新漏洞公告是 CVE-2022-22963:Spring 表达式资源访问漏洞CVE-2022-22950:Spring 表达式 DoS 漏洞 ,但这两个漏洞的严重程度都是中等,无法与网传 Spring 核心框架的 RCE 高危程度相比。

 

更新:

有热心网友联系作者,称其已掌握完整复现漏洞的 PoC 和 ExP,可证明漏洞确实存在。但因该漏洞影响太大,在官方发出公告前不宜公开更多细节。

猜你喜欢:
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册