Meta Muse 分享链接被 DNS 索引:6800 段私密对话可检索

Meta 已经暂停旗下 AI 助手 Muse 的对话分享功能。原因是安全公司 Claroc 发现,Muse 生成的分享链接把对话标题直接写进了二级域名,而域名查询在 TLS 握手之前就以明文经过解析链路,会被被动 DNS 服务记录成可查询的历史数据。研究员只做了一次被动 DNS 查询,就拿到超过 6800 个分享页面的主机名。

事件概述

Claroc 于 10 月 8 日通过 Meta 的漏洞赏金计划上报,10 月 18 日发布报告,10 月 20 日更新复核结果。Meta 发言人回应称,用户确实可以分享指定的 Muse 内容并生成可通过链接访问的页面,公司已暂停该功能,以审查报告并评估链接可发现性的改造方案。

这个漏洞被研究团队命名为 GhostShares。它不需要破解任何随机标识符,也不需要爆破 —— 问题出在地址设计本身。

技术细节:标题进了域名,隐私就进了数据库

Muse 的分享地址长这样:

https://{会话标题}-{随机ID}.cf.metaaiusercontent.com

后面的随机 ID 本身很难猜,问题不在熵,在前面那截标题。一次 DNS 查询包含完整主机名,被动 DNS 供应商会把全球范围的查询长期留档并提供检索接口,于是「随机会话 ID + 人类可读标题」这个组合变成了一份公开索引。攻击者不用爆破,只要在历史 DNS 库里按关键词搜,就能反推出仍然有效的分享地址。

另一个放大器是这些页面无需登录即可访问,无痕窗口打开就行,前提只是拿到链接。路径和查询参数在 TLS 建立之后才被加密,二级域名不是 —— 这个区别决定了整个漏洞能不能成立。

影响评估

Claroc 抽查了数百个页面,看到的内容包括:企业营收审查文件、小微企业贷款申请、带部分账号的银行欺诈警报、房地产投资数据、员工年度休假安排;还有一份候选人为与某前沿 AI 实验室负责人进行保密电话沟通所做的准备材料,里面含内部联系人与会议时间。

  • 发现成本:单次被动 DNS 查询即得 6800 个以上主机名
  • 认证要求:无,持链接即可读取
  • 已缓解部分:10 月 20 日复核此前 40 个可匿名打开的页面,全部无法访问,主机名返回错误
  • 残留风险:已进入被动 DNS 历史记录的域名与对应标题不会被删除

这里要分清两件事:Meta 的处置解决了「新链接继续泄漏」,解决不了「旧标题仍然躺在别人的数据库里」。而标题本身承载了最大信息量 —— 「某公司 Q3 营收复核」「XX 银行贷款申请草稿」,光标题就够写一封像模像样的定向钓鱼邮件开场。

修复建议

对普通用户:翻一遍自己在各类 AI 助手里生成过的分享链接,删掉不再需要的;别再把「会话标题」当成无关紧要的信息 —— 它现在会同时出现在 URL、DNS 查询、浏览器历史和对方聊天记录四个地方。

对开发者的三条硬规则:

  • 分享标识符必须是纯随机串,不能携带任何语义,尤其不能复用用户输入
  • 链接要能过期、能吊销,并记录每次访问的时间与来源
  • 敏感内容在渲染前强制鉴权,不要用「知道链接」代替「有权限」

凡是把用户输入拼进主机名、子域名或路径的设计,上线前都该问一句:这个字段会不会被第三方日志系统长期留存?DNS、CDN 日志、证书透明日志,这三处都不受你自己的数据保留策略约束。

参考来源