protobuf.js 严重漏洞威胁 Google Cloud 和 Firebase 上数千项服务
流行的 JavaScript 库 protobuf.js(用于处理 Protocol Buffers 格式)存在一个严重漏洞,允许攻击者在服务器上执行任意代码。该问题影响数百万项服务,尤其是运行在 Google Cloud 和 Firebase 上的服务。
攻击原理
该漏洞与 protobuf 模式文件的处理机制有关。该库根据数据描述生成 JavaScript 代码,并通过类似 eval 的函数执行。如果恶意代码被插入到模式的类型或字段名称中,它将在没有验证的情况下被执行。
攻击不需要复杂操作:只需应用程序从外部源加载被篡改的模式文件即可。这些模式通常来自合作伙伴服务、共享仓库或通过 gRPC 自描述。加载后,一条普通消息即可激活恶意代码。
威胁范围
- 每周 5200 万次下载——这是 protobuf.js 的下载量。
- 该库通常是隐藏依赖项,因此实际受漏洞影响的项目数量可能更高。
- 受影响的版本包括 8.0.0 及以下版本和 7.5.4 及以下版本。
- 该漏洞已被分配标识符 GHSA-xq3m-2v4x-88gg,CVSS 评分为 9.4。
关键点
- 该漏洞允许在无需身份验证的情况下在服务器上执行代码。
- 如果应用程序从外部源加载模式,则可能受到攻击。
- 修复版本已发布:8.0.1 和 7.5.5。
- 目前尚无公开攻击报告,但利用该漏洞在技术上很简单。
- Google Cloud、Firebase 以及使用 gRPC 的服务尤其容易受到攻击。
业务影响
如果攻击者攻破一个模式源,他们可以:
- 获取令牌和用户数据。
- 渗透内部服务。
- 窃取机密信息。
鉴于 protobuf.js 的流行度,该攻击可能影响数千家公司。开发人员必须紧急更新该库并检查所有依赖项,尤其是那些从外部源加载模式的依赖项。
建议
- 立即将 protobuf.js 更新到 8.0.1 或 7.5.5 版本。
- 检查所有项目是否存在受漏洞影响版本的隐藏依赖项。
- 审查应用程序从外部源加载模式文件的位置。
- 考虑在加载前验证模式。
- 对下载的文件使用完整性控制机制。
— Editorial Team
暂无评论。