CVE-2025-59789:Apache bRPC框架关键缺陷使高性能系统面临崩溃风险
在广泛应用于搜索、存储和机器学习等领域高性能系统的工业级RPC框架Apache bRPC中,发现了一个严重漏洞。该漏洞被标记为CVE-2025-59789,远程攻击者可以利用该框架解析JSON数据时存在的弱点,使服务器崩溃。
该漏洞的核心是由无限递归引起的栈耗尽问题。根据安全公告,此缺陷存在于json2pb组件中,即“在所有平台上,Apache bRPC(版本<1.15.0)中json2pb组件的未受控递归,允许远程攻击者通过发送深度递归的json数据使服务器崩溃。”
问题的根源在于底层的解析逻辑。公告解释说:“bRPC json2pb组件使用rapidjson来解析来自网络的json数据”,并且“rapidjson解析器默认使用递归解析方法”。
当攻击者发送一个具有过深递归结构的JSON有效载荷时,解析器会耗尽所有可用的栈内存,导致应用程序崩溃。“如果输入的json具有深度很大的递归结构,解析器函数可能会遇到栈溢出。”
使用bRPC处理外部流量的组织尤其容易受到攻击。报告明确指出以下危险场景:“使用bRPC服务器和protobuf消息来处理来自不受信任网络的http+json请求”,或者“直接使用JsonToProtoMessage来转换来自不受信任输入的json”。
鉴于bRPC在“搜索、存储、机器学习、广告、推荐等高性能系统”中的广泛应用,此漏洞对主要技术基础设施服务可用性的潜在影响非常重大。
维护者已经发布了一个修复程序,对数据解析的深度设置了安全上限。为减轻此威胁,建议管理员“将bRPC升级到1.15.0版本,该版本修复了此问题”。
然而,此修复附带了一个开发人员必须注意的功能变更。“该修复引入了默认值为100的递归深度限制”。这意味着具有深度嵌套结构的合法请求现在可能会被拒绝。如果此默认限制干扰了有效操作,公告指出“您可以修改gflag json2pb_max_recursion_depth 来更改此限制。”