tl;dv:18 万场会议就这么敞着

查看原文 HN 讨论

文章摘要

安全研究者 BobDaHacker 于 2026 年 8 月 4 日发布了这篇披露文章,标题玩了个梗:tl;dv 本来是 “Too Long; Didn’t View”,他改成了 “Too Lazy; Didn’t Validate”(懒得校验)。核心事实很简单,也很难堪:他在 2026 年 1 月 28 日报告了漏洞,到发文时已过去六个月,Firestore 数据库依然完全敞开,CTO 从未回复过

tl;dv 是什么:一款 AI 会议录制平台,会往你的 Google Meet、Zoom 或 Teams 会议里派一个机器人,录下全程、转写文字并用 AI 生成摘要。超过 200 万用户,有投资方背书。作者的形容相当传神:它存的是销售电话、求职面试、绩效评估、内部战略会议——「就是那种有人说『本次通话正在录音』、大家紧张地笑一笑、然后接着聊 45 分钟商业机密的内容」。

漏洞本身:注册 tl;dv 后,平台用 JWT 认证用户,并通过 gw.tldv.io/v1/users/firebase/token 换取一个 Firebase token,凭该 token 可以查询它的 Firestore 数据库。问题在于 meetings 这个集合完全没有租户隔离:任何一个已认证的 tl;dv 用户(包括免费用户)都能查询平台上所有账户的所有会议记录。每条记录会交出创建者的邮箱地址、会议 ID(这是一个可直接加入的 Google Meet 或 Teams 房间)、平台类型、录制状态和时间戳。

最危险的部分是:对于状态为 recording 的会议,那个会议 ID 指向的是一场正在进行的实时通话。你可以实时监听这个集合,看着某场会议开始录制、抓下 ID、然后不请自来地走进别人的会议。作者估计任意时刻大约有 1000 场处于 recording 状态的会议——也就是一千场暴露着会议 ID 的实时通话,一个带机器人的攻击者可以同时加入全部。

他真的进去了两场。一场是马来西亚教育部的 Google Meet,一位女士正在向 157 名以上的参会者做演示,tl;dv 的机器人已经在参会者列表里,他也在同一个会议里,没有人邀请他——「是 Firestore 数据库邀请的」。另一场是某美国知名大学的学生在做创业 App,21 人在线,全程共享屏幕讨论原型;作者写道,他们当时正在讨论需要给 .edu 邮箱加客户端校验,而且正在屏幕上现场配置 Supabase,「我脑子里只有一句话:请一定要设置 RLS 策略啊」。他说自己极想开口提醒「你们也需要服务端校验」,但这是概念验证,不是咨询服务。

规模:查询 meetings 集合得到 181,874 条会议记录,涉及 84,312 个唯一用户35,003 个邮箱域名。其中包括来自 23 个国家的政府会议(巴西、哥伦比亚、秘鲁、乌克兰、萨尔瓦多、菲律宾、智利、印尼、墨西哥、美国、卡塔尔、马来西亚、乌兹别克斯坦、斯里兰卡、海地、南非、牙买加、洪都拉斯、阿根廷、泰国、日本、以色列、伯利兹),全是 .gov 域名;还有伯克利、东京大学、德拉萨大学、哥伦比亚国立大学等数十个 .edu.ac 域名;以及三井仓库(484 场会议,横跨四个区域办公室)、三井不动产、HubSpot、Confluent 等企业。峰值月份是 2025 年 7 月的 43,209 场;最繁忙时段是周三 UTC 下午 2 点,7,804 场——「周中站会时间」。

更进一步:默认情况下会议内容是私有的(看不到视频和转写稿),于是他抓了 27,334 个会议 ID 逐个检查哪些是公开的——超过 1000 个是,暴露了 715 个受邀者邮箱、涉及 228 个域名。其中包括一场巴西政府的生态保护会议(PACTO Mata Atlântica),参会方有 WWF、大自然保护协会、保护国际、世界资源研究所和圣保罗州政府;还有乌克兰数字转型部的会议、一场 HubSpot 销售通话等。

「意面基础设施」:作者顺手扫了子域名,发现 tl;dv 用意大利面给微服务命名——cappellini、carbonara、fusilli、pasta、penne、puttanesca-v0、ravioli,「整整一家意大利餐厅那么多的 Express 服务器」。他还发现了 worldcup.tldv.io:一个用 Base44 搭出来的 2026 世界杯内部竞猜游戏,Player 实体的 API 零认证,一个不带 session cookie 的 GET 请求就能返回全部 43 名玩家记录,其中 19 个是 @tldv.io 员工的全名和企业邮箱。他调侃道,一家录下几百万人会议的公司,随手 vibecode 出来的内部小游戏泄露了自己的员工通讯录,「这讽刺熟得刚刚好(al dente)」。

披露时间线才是全文最刺人的部分。1 月 28 日,他在 LinkedIn 上联系了公司联合创始人 Raphael Allstadt,对方几分钟内回复「谢谢!你能报告给我们 CTO 吗,我们会立刻处理」。他发了邮件。CTO 从未回来找他。1 月 29 日:「你们 CTO 还没联系我,而且没修。」1 月 30 日对方回:「我确信团队很快很快就会审查。」2 月 14 日:「没收到邮件,漏洞还能用。」对方:「他会回来的 ☺️」2 月 19 日:「我们在处理了,需要点时间,但请放心我们会跟进。后续沟通建议联系我们 CTO。」——就是那个从不回复的 CTO。3 月 6 日:「还是没修。」已读,无回复。7 月 22 日:「还是没修……」无回复。

与此形成对照的是 tl;dv 的安全页面:SOC2 合规、GDPR 合规、欧盟 AI 法案合规、托管在欧盟、AES-256 加密、创始人承诺视频、一排六枚合规徽章。页面底部埋着一行小字:如果发现隐私或安全问题请通过 privacy 邮箱告知我们,「我们的安全团队将在 24 小时内响应」。作者的评语是:「他们的 Firestore 数据库比他们的收件箱正常运行时间还高。」

文末他给出三条建议:修好 Firestore 的租户隔离(其他所有集合——users、chats、transcripts、clips、recordings、videos、notes、teams、organizations——都正确返回 403,「你们只是忘了 meetings」);给世界杯应用加认证或者下线它;以及回复安全研究者

HN 评论精华

这条帖子拿到 630 分,是本期最热的讨论之一。评论区的怒火集中在三处:六个月不修的公司治理、SOC2 认证的含金量,以及 Firebase 的默认不安全。