AnthropicBuffaRust库0Day漏洞可引发拒绝服务攻击

admin 2026-07-03 05:46:54 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: Anthropic的Rust库buffa存在0Day拒绝服务漏洞,攻击者可构造恶意protobuf嵌套字段引发22倍堆内存放大导致服务崩溃。漏洞源于未知字段解码无分配上限。建议立即升级至connectrpc0.8.0以上版本,或将preserve_unknown_fields设为false缓解风险。 综合评分: 89 文章分类: 漏洞分析,漏洞预警,漏洞POC,代码审计,供应链安全


cover_image

Anthropic Buffa Rust库0Day漏洞可引发拒绝服务攻击

FreeBuf

2026年7月2日 18:00 上海

在小说阅读器读本章

去阅读

Anthropic 基于 Rust 语言的 protobuf 实现库 buffa 被发现存在 0Day 拒绝服务(DoS)漏洞,攻击者可通过控制输入触发无限制堆内存分配。

该漏洞编号为(CVE-2026-55407)和 GHSA-f9qc-qg88-7pq5,影响 buffa 和 connectrpc 0.8.0 之前版本,CVSS 评分为 4.0/6.3(中危)。但根据实际部署架构,其影响可能升级为高危或严重级别。

Part01

漏洞发现过程

Endor Labs 的 AI SAST 引擎在分析 buffa 代码库时,于未知字段解码器中发现了可疑数据流。在 decode_unknown_field 函数中,长度值直接从不受信任的 protobuf 线数据解析,转换为 usize 类型后用于分配 Vec,除基本类型限制外未设置明确上限。

Part02

漏洞技术细节

虽然防护机制确保缓冲区至少包含 len 字节以防止越界读取,但未对分配本身进行约束,使得攻击者可通过提交超大长度分隔字段强制进行大规模堆分配。初步分析显示输入大小与堆使用量存在约 2 倍放大效应,这在严格输入限制下通常可控。

但进一步追踪 WireType::StartGroup 处理分支时,发现了更危险的放大向量。该分支解码器会循环处理嵌套未知字段直至遇到匹配的 EndGroup 标签,将每个解码字段推入基于 Vec 的 UnknownFields 结构。由于线路上最廉价的嵌套字段仅需 2 字节编码,却会导致约 40 字节堆分配及增长开销,精心构造的组可将较小输入扩展为巨大的内存结构。

Part03

漏洞验证

Endor Labs 的概念验证显示,包含数百万个最小 varint 字段的 64 MiB protobuf 负载可使堆使用量激增至约 1.4 GiB,达到输入大小的 22 倍。在内存限制为 256 MiB 的 Docker 容器中解码此类消息时,进程会因退出代码 137 被终止,证实存在内存耗尽型 DoS。

Part04

影响范围与修复方案

该漏洞路径可通过 buffa 默认解码 API(包括 Message::decode 和 decode_from_slice)触发,这意味着任何启用 preserve_unknown_fields(默认开启)解码不受信任 protobuf 消息的服务都可能受影响。Anthropic 已在 buffa 和 connectrpc 0.8.0 版本中发布修复,实现了可配置的每消息未知字段限制,将最大分配开销控制在数十兆字节内。

对于无法立即升级的环境,可通过设置 preserve_unknown_fields=false 重新生成代码作为缓解措施,这将关闭未知字段保留功能。此案例表明,仅依赖输入大小限制并不足够,因为组放大路径可能将看似安全的消息大小转化为致命的内存分配。

参考来源:

Anthropic’s Buffa Rust Library 0-Day Vulnerability Enables DoS Attack

Anthropic’s Buffa Rust Library 0-Day Vulnerability Enables DoS Attack

推荐阅读

#

#

#

#

#

#

#

#

#

#

#

#

#

#

#

电报讨论


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:FreeBuf 《Anthropic Buffa Rust库0Day漏洞可引发拒绝服务攻击》

评论:0   参与:  0