Synth Daily

号称“超级安全”的聊天应用泄露所有用户手机号

一款自称“超级安全”的聊天应用 Freedom Chat,因其安全设计存在重大缺陷,导致所有用户的手机号码和 PIN 码被泄露。研究人员发现,该应用的两个核心漏洞可以被结合利用:一个漏洞在用户加入“频道”时会公开所有成员的 PIN 码;另一个漏洞则允许攻击者通过一个没有速率限制的接口,批量查询任意手机号是否注册,从而将手机号与用户账户匹配。攻击者因此能够系统性地获取所有用户的手机号,并将其与泄露的 PIN 码一一对应,完全破坏了用户的隐私和账户安全。

“我们俩之前都没有开发移动应用的经验,但我们想,‘嘿,我们都很聪明。这应该不会太难。’” — Freedom Chat 首席执行官 Tanner Haas

背景:从失败中“学习”

Freedom Chat 的前身是一款名为 Converso 的应用,于 2023 年推出。它声称拥有顶级的端到端加密和去中心化架构。然而,安全研究员很快发现这些说法毫无根据,其加密实现存在严重漏洞,导致所有消息都可能被轻易读取。在被曝光后,Converso 从应用商店下架并更名为 Freedom Chat。

其首席执行官 Tanner Haas 随后发表了一篇博文,分享了他学到的教训,例如:

  • 接受批评并改进,不要抱怨。
  • 确保产品经过彻底测试,为黄金时段做好准备。

然而,他对最初披露漏洞的研究员曾发出模糊的法律威胁,这与他所说的“接受批评”似乎并不一致。

第一个漏洞:频道泄露所有成员的 PIN 码

研究人员发现,当用户打开应用中的任何一个“频道”(Channels)时,应用会向服务器请求该频道的所有信息,其中包括一份完整的成员列表。

问题在于,返回的每个成员信息中,都包含了一个名为 pin 的字段,这个字段直接以明文形式存储了用户的 PIN 码

  • 默认情况下,所有新用户都会被自动加入一个官方的 “Freedom Chat” 频道。
  • 这意味着,只要一个用户没有手动退出这个默认频道,他的 PIN 码就会暴露给频道内的所有其他成员。
  • 虽然这没有直接将 PIN 码与手机号关联起来,但已经是一个严重的信息泄露。

第二个漏洞:无限制的手机号查询

Freedom Chat 曾公开嘲笑 WhatsApp 存在的一个漏洞,即允许攻击者通过批量测试电话号码来找出哪些号码注册了服务。具有讽刺意味的是,Freedom Chat 自身也存在完全相同的漏洞。

  • 应用中有一个“联系人发现”功能,它会向服务器发送一个手机号列表,服务器则返回其中哪些号码是 Freedom Chat 用户。
  • 这个查询接口(/user/numbers完全没有进行速率限制
  • 攻击者可以编写一个简单的脚本,生成并测试所有可能的电话号码组合,从而建立一个包含所有 Freedom Chat 用户手机号的完整数据库。

致命组合:手机号匹配 PIN 码

这两个漏洞结合起来,构成了一次灾难性的隐私泄露。攻击者可以执行以下步骤:

  1. 批量枚举手机号: 使用一个脚本,向无限制的 /user/numbers 接口发送大量请求,获取所有注册用户的 手机号 及其对应的 用户ID (UID)
  2. 获取 PIN 码: 加入一个大型频道(如默认的官方频道),获取所有成员的 用户ID (UID) 及其对应的 PIN 码
  3. 完成匹配: 通过共同的 用户ID (UID),将两个列表进行匹配,最终得到一个 “手机号 -> PIN 码” 的完整对应表。

研究人员通过编写一个简单的脚本,在约 27 小时内就成功验证了这一攻击方式的可行性,期间没有遇到任何服务器限制或请求失败。这证实了 所有用户的手机号和 PIN 码都已被完全泄露

时间线

  • 2025年11月23日: 发现漏洞。
  • 2025年12月04日: 向 Freedom Chat 披露漏洞。
  • 2025年12月05日: Freedom Chat 回应,承认问题并承诺在一周内修复。
  • 2025年12月09日: Freedom Chat 通知研究人员问题已修复。
  • 2025年12月11日: 漏洞细节被公开发布。