Weaviate Blog

Weaviate security release - Medium severity fix for a cross-collection vector disclosure in nearObject (CVE pending assignment)

6.9内容质量

TL;DR · AI 摘要

Weaviate security release - Medium severity fix for a cross-collection vector disclosure in nearObject CVE pending assig...

核心要点

  • 主题聚焦:Weaviate security release - Medium severity fix
  • 来源:Weaviate Blog,建议结合原文判断细节。
  • AI 分析暂不可用,本条为保底评分与摘要。
#AI#后端#云计算#安全
打开原文

Weaviate 安全发布 - 修复 nearObject 中跨集合向量泄露漏洞(CVE 尚未分配) | Weaviate

简介

随着 Weaviate v1.39.3 及以上版本的发布,我们修复了 Weaviate GraphQL nearObject 搜索操作符中的一个中等严重性授权漏洞。该漏洞允许用户读取其无权访问的集合中对象的向量。已向 MITRE 提交 CVE 申请,目前尚未分配;一旦分配完成,我们将在此帖子中更新 CVE ID。

根据我们的安全政策,运行在 Weaviate Cloud 的 Weaviate 客户,以及在 AWS、Azure 和 GCP 上的 Marketplace 客户已无缝完成补丁更新。我们的 Weaviate 企业支持客户已获得受限制通知,我们的客户支持团队正在与 Weaviate 专用客户合作,视情况组织版本升级。

通过 nearObject 的跨集合向量泄露(CVE 尚未分配)

nearObject 搜索会使用指向现有对象的信标(beacon),加载该对象的向量,并将其作为搜索向量使用。Weaviate 对正在搜索的集合进行了授权,但未对信标中指定的集合进行授权。当两者不一致时,即使调用者对该集合没有读取权限,信标目标的向量仍会被加载和使用。

该漏洞不会直接读取受保护对象。调用者在响应中永远不会看到该对象、其属性或其向量。但调用者会接收到受保护向量与搜索结果中每个对象之间的距离,这些距离足以重建受保护向量。通过将可控集合填充为选定的探测向量,然后使用指向不受控集合的信标对该集合执行 nearObject 搜索,调用者可以以很高的精度恢复受保护向量。报告者通过使用 8 个探测对象,成功将四维归一化向量恢复到 5e-9 的精度。

实施攻击需要以下条件:

  • 目标集合的名称和其中某个对象的 UUID。这些信息无法猜测,但通常已知,例如在应用程序存储集合间交叉引用时。
  • 读取集合定义的权限,GraphQL 需要此权限以暴露集合字段。
  • 在其他集合中创建和读取数据的权限,用于存储探测向量。

攻击者不需要目标集合的读取权限。当直接读取受保护对象时,Weaviate 会正确返回 403 错误,但使用相同账户通过搜索路径获取相同向量时却能成功。

此漏洞影响依赖 RBAC 在共享集群中隔离集合的部署,例如多个团队或应用程序共享一个 Weaviate 实例且每个团队仅对其自己的集合有读取权限的场景。如果所有具有查询权限的用户均已获信任访问所有集合数据,则部署不受实质性影响。

修复方案在加载信标目标向量之前进行授权,授权过程在共享向量查找阶段完成,而非在 GraphQL 解析器中,从而确保所有使用该查找的 API 接口都受到相同检查。

该漏洞的 CVSS 评分为中等。

受影响的 Weaviate 版本为 < v1.39.3。我们建议受影响用户将 Weaviate 安装升级至 v1.39.3 或更高版本以彻底修复该漏洞。在升级完成前,建议审查所有集合中拥有 read_collections 权限的角色,因为无法查看集合定义的用户无法通过 GraphQL 查询其字段,应将该权限严格限制在每个角色实际需要的集合范围内。同时建议审查任何拥有 create_data 权限的角色,因为攻击需要存在可植入探测向量的位置。

目前尚无证据表明该漏洞已被利用。

致谢

该漏洞由 Civitasmass 发现并报告,其通过我们的漏洞披露计划向我们通知了该问题。报告中包含完整的可复现示例和精确的根本原因分析,使我们能够快速确认并修复该问题。我们感谢他们负责任地报告此问题。

安全问题报告

如果您认为发现了安全漏洞,请访问我们的安全报告页面了解如何向我们提交报告。Weaviate 将联系您确认报告,并提供后续建议。我们要求研究人员在漏洞修复并正式公告前不要公开披露漏洞,除非已收到 Weaviate 安全团队允许公开的回复。

准备开始构建?

查看我们的快速入门教程,或注册免费的 Weaviate Cloud 账户。