CVE-2026-0994:谷歌Protocol Buffers曝出高严重性拒绝服务漏洞

阅读量4471

发布时间 : 2026-01-28 10:08:23

x
译文声明

本文是翻译文章,文章原作者 Ddos ,文章来源:securityonline

原文地址:https://securityonline.info/high-severity-dos-flaw-hits-google-protocol-buffers-cve-2026-0994/

译文仅供参考,具体内容表达以及含义原文为准。

谷歌旗下被广泛应用的结构化数据序列化工具Protocol Buffers(简称 protobuf,协议缓冲区) 中发现一处高严重性漏洞,该漏洞编号为CVE-2026-0994,仅影响其 Python 实现版本,攻击者可利用此漏洞发起拒绝服务(DoS)攻击,导致相关服务崩溃。
该漏洞的 CVSS 评分为 8.2 分,其利用了该类库在处理嵌套数据时的一处盲区,恶意载荷可借此绕过安全限制,耗尽服务器的内存栈资源。
漏洞存在于google.protobuf.json_format.ParseDict() 函数中,该函数的核心作用是将 JSON 数据解析为 protobuf 消息。为防止解析过程中出现服务崩溃,该函数原本应强制执行max_recursion_depth(最大递归深度) 限制 —— 这一安全机制能阻止解析器过度深入嵌套结构。
但研究人员发现,当处理一种特定的消息类型google.protobuf.Any时,这一安全机制会失效。
报告中解释道:“内部辅助函数_ConvertAnyMessage() 在处理嵌入消息时,不会对递归深度计数器进行递增或递减操作。”
这意味着,系统能正常统计标准消息的嵌套深度,却对 Any 类型消息的嵌套完全忽略。攻击者可通过 **“将 Any 消息层层嵌套在其他 Any 消息内部”** 的方式利用该漏洞,实现 **“绕开已配置的深度限制,发起无限制的递归操作”**。
凡是 **“解析包含 Any 类型消息的不可信 JSON 输入”** 的服务,均会面临该漏洞带来的重大风险。如果你的应用程序接收外部 JSON 数据,且使用 Python 版 protobuf 类库进行解析,那么该应用大概率会受到这一拒绝服务攻击向量的威胁。
要修复这一漏洞,需对解析逻辑进行更新,让其对消息的每一层嵌套都进行深度统计,无论消息属于何种类型。报告建议开发者 **“确保 max_recursion_depth 限制对所有消息类型一致生效,包括嵌套的 Any 类型消息”,或针对性修补_ConvertAnyMessage ()** 函数,使其能正确对递归深度计数器进行递增操作。
本文翻译自securityonline 原文链接。如若转载请注明出处。
分享到:微信
+10赞
收藏
安全客
分享到:微信

发表评论

Copyright © 北京奇虎科技有限公司 三六零数字安全科技集团有限公司 安全KER All Rights Reserved 京ICP备08010314号-66