tl;dv(太懒;没验证):181,874 场会议完全暴露
摘要
一名安全研究人员披露,AI 会议录制平台 tl;dv 的 Firestore 数据库暴露了数月,导致任何经过身份验证的用户都能访问超过 181,000 条会议记录,以及数千场正在进行中的通话的实时会议 ID,其中包括政府和大专院校的会议。
<p><a href="https://lobste.rs/s/97laur/tl_dv_too_lazy_didn_t_validate_181_874">评论</a></p>
查看缓存全文
缓存时间: 2026/08/06 12:09
# tl;dv(懒得验证):181,874 场会议完全敞开
来源:https://bobdahacker.com/blog/tldv-hack
*我在 2026 年 1 月 28 日报告了这个问题。现在是 2026 年 7 月。六个月过去了。Firestore 数据库依然完全敞开。CTO 从未回复。我猜我的邮件太长了,他们压根没看。*
## 什么是 tl;dv?
tl;dv(Too Long; Didn't View,太长不看)是一个 AI 会议录制平台。它会放一个机器人进你的 Google Meet、Zoom 或 Teams 通话,录下一切,转写成文字,并用 AI 生成摘要。超过 200 万用户。有投资方背书。LinkedIn 上有一半销售领域网红在推荐。
他们存储你的销售电话、求职面试、绩效评估、内部战略会议。就是那种有人说“本次通话正在录音”时,大家尴尬地笑笑,然后接着讲 45 分钟商业机密的内容。
## 漏洞
当你注册 tl;dv 时,平台会用 JWT 对你进行身份验证,并通过 `gw.tldv.io/v1/users/firebase/token` 将其换取 Firebase token。这个 token 让你可以查询他们的 Firestore 数据库,位置在 `projects/lmi-store/databases/(default)`。
`meetings` 集合没有任何租户隔离。任何通过身份验证的 tl;dv 用户都可以查询平台上每个账户的每场会议。每条会议记录都会给你创建者的电子邮件地址、会议 ID(这是一个可加入的 Google Meet 或 Teams 房间)、提供商、录制状态和时间戳。
对于 `recording`(录制中)状态的会议,那个会议 ID 是一个实时、活跃的通话。你可以实时监控这个集合,看到一场会议开始录制,抓取 ID,然后未经邀请走进别人的通话。在任何时刻,集合中大约有 **1,000 场 `status: recording` 的会议**。一千场实时通话,会议 ID 全部暴露。攻击者可以用一个机器人同时加入所有这些会议。
一场正在被录制的通话
## 我加入了 2 场会议
我做了。
我从 Firestore 抓了一个会议 ID,加入了一场属于**马来西亚教育部**的实时 Google Meet。一位女士正在向超过 157 名参与者做演示。tl;dv 机器人已经在参与者列表里了。我也在同一场通话里。没人邀请我。是 Firestore 数据库邀请的。
通话 1
我还加入了一场通话,参与者是美国一所重点大学的学生,正在构建一个创业应用。通话里有 21 个人。他们正在屏幕共享整个项目,讨论原型,而且,我没开玩笑,他们正在讨论如何为 `.edu` 邮箱地址添加客户端验证。他们还在屏幕上实时搭建 Supabase,我满脑子想的都是“求你们设置 RLS 策略吧”,因为大多数人都不会设置,然后你就会变得像 tl;dv 一样。
我非常想说点什么。“嘿,你可能还需要服务端验证。”但这是一次概念验证,不是咨询。
通话 1
## 规模
我查询了 Firestore 的 `meetings` 集合,看到有 **181,874 条会议记录**,属于 **84,312 个独立用户**,分布在 **35,003 个邮箱域名**中。
来自 **23 个国家**的政府会议:巴西、哥伦比亚、秘鲁、乌克兰、萨尔瓦多、菲律宾、智利、印度尼西亚、墨西哥、美国、卡塔尔、马来西亚、乌兹别克斯坦、斯里兰卡、海地、南非、牙买加、洪都拉斯、阿根廷、泰国、日本、以色列和伯利兹。全部是 `.gov` 域名。政府雇员在一个让任何免费用户都能枚举全部数据的平台上录制通话。
来自伯克利、东京大学、德拉萨大学、哥伦比亚国立大学的大学会议。数十个 `.edu` 和 `.ac` 域名。
来自其余 35,000 个域名的企业会议。三井仓库(四个地区办公室共 484 场会议)、三井不动产、HubSpot、Confluent、Mekari、AnyMind Group。每一个曾使用过 tl;dv 的公司,他们的会议元数据都在同一个未受保护的集合里。
最忙的月份是 **2025 年 7 月,共 43,209 场会议**。最繁忙的时间段:** UTC 时间周三下午 2 点**,7,804 场会议。周三站立会时段。
## 等等,还有更多
我还想知道实际能访问多少内容。默认情况下会议是私有的(意思是你看不了视频或文字记录),所以我抓取了 27,334 个会议 ID,检查哪些是公开的。超过 **1,000 个是公开的。** **715 个受邀者邮箱**被暴露,涉及 **228 个域名**。
亮点:一场巴西政府的自然保护会议(PACTO Mata Atlântica),参与者来自 WWF、大自然保护协会、保护国际基金会、WRI 和圣保罗州政府。来自乌克兰数字化转型部的会议。一场 HubSpot 的销售电话。涉及哥伦比亚国立大学和智利 Cámara Verde 的会议。
## 意面基础设施
tl;dv 用意大利面名字给他们的微服务命名。子域名扫描揭示出 **cappellini**、**carbonara**、**fusilli**、**pasta**、**penne**、**puttanesca-v0** 和 **ravioli**,都在 tldv.io 之下。一整家意面餐厅的 Express 服务器。
## 太长不评分
在探索他们的子域名时,我发现了 **https://worldcup.tldv.io/**。一个用 vibe coding 做出来的 FIFA 2026 世界杯预测游戏,构建在 Base44 上,给 tl;dv 员工用。它叫“World Cup Pick'em”,他们的内部小队叫“Too Long; Didn't Score”(太长不评分)。挺可爱。
Player 实体 API 零认证。`GET /api/entities/Player` 无需会话 cookie 就返回所有玩家记录。**43 名玩家。** **19 名 @tldv.io 员工**,带全名和公司邮箱。
我的披露联系人 Raphael Allstadt,他给了模糊的保证,然后就没声了,以 298 分排名第二。他的个人 Gmail 也在 API 响应里。全球排行榜上的第 5 名玩家叫“Super Duper CEO”。你猜是谁。
Prediction 和 Fixture 实体也是完全敞开的。一个录制了数百万人会议的公司,用 vibe coding 做了一个内部娱乐应用,却泄露了自己的员工名录。这讽刺感真是恰到好处,al dente。
一个 vibe coding 出来的世界杯粗糙应用
## 披露
1 月 28 日,我在 LinkedIn 上给 Raphael Allstadt 发消息,说我发现了一个泄露用户数据的巨大漏洞。他几分钟内回复:“谢谢!你能报告给我们的 CTO 吗?我们会立即查看!”我发了邮件。他说“谢谢!”我问有没有奖励。“我们的 CTO 会回来找你的,”他说。
CTO 从未回来找我。
1 月 29 日:“顺便说一下,你们的 CTO 还没联系我,而且漏洞也没修。”1 月 30 日,Raphael:“我相信团队很快很快就会审查的 ❤️”2 月 14 日:“我没收到邮件,漏洞仍然有效。”Raphael:“他会回来的 ☺️”我告诉他不如修一下漏洞,别让客户暴露在风险中。2 月 19 日:“我们正在处理。这需要一些时间,但请放心,我们会跟进的。后续沟通,我建议联系我们的 CTO。”
那位从不回应的 CTO。就是那位 CTO。
3 月 6 日:“仍然没修。”Raphael 下午 5:42 已读。没有回复。
7 月 22 日:“仍然没修……”没有回复。
他们的安全页面是一个奖杯陈列柜。SOC2 合规。GDPR 合规。EU AI Act 合规。托管在欧盟。AES-256 加密。一段创始人承诺视频。六个合规徽章排成一排。埋在页面底部,有一行字:“如果您发现了我们应该处理的隐私或安全问题,请随时通过 `[email protected]` 告诉我们。我们的安全团队会在 24 小时内回复。”我直接给 CTO 发了邮件。六个月。没有回复。他们的 Firestore 数据库的可用性比收件箱还好。
日期 | 事件
---|---
2026 年 1 月下旬 | 发现 Firestore 租户隔离绕过
2026 年 1 月 28 日 | 联系 Raphael Allstadt(LinkedIn)并邮件发送 CTO 和 Raphael
2026 年 1 月 29 日 | Raphael 给出模糊保证
2026 年 2 月 - 3 月 | 多次跟进。CTO 从不回复。
2026 年 7 月 | 仍未修复。仍无回复。Buon appetito。
## 致 tl;dv
你们的平台录制的正是人们最敏感的对话。求职面试。销售谈判。政府简报。你们的用户把明确同意录制的内容托付给了你们。
修复 Firestore 的租户隔离。Firestore 安全规则就是干这个用的。你们在其他每个集合上都已经做对了(users、chats、transcripts、clips、recordings、videos、notes、teams、organizations 全部返回 403)。只是把 meetings 忘了。
给世界杯应用加上身份验证,或者把它下线。你们的员工名录离一个 GET 请求只有一步之遥。
回复安全研究人员。尤其是当他们在告诉你,你们平台上每一场会议都可以被任何拥有免费账户的人查询到的时候。
---
那么,再见了,感谢所有的意面 :3
相似文章
忘记关闭Microsoft Teams录制,网络犯罪双胞胎被抓
双胞胎黑客因Microsoft Teams会议录制了破坏雇主数据库的计划而认罪,证明了忘记结束录制的危险。
@DailyDoseOfDS_: OpenAI 为此支付了 50 万美元!> 寻找 LLM 漏洞的 Kaggle 竞赛 DeepTeam 免费实现 20+…
DeepTeam 是一款免费的开源工具,实现了 20 多种最先进的攻击技术,可检测包括偏见和个人信息(PII)泄露在内的 50 多种 LLM 漏洞,可在本地运行且无需数据集。
Dialog声称遭黑客攻击,网站配置失误导致其成员信息泄露
据《连线》报道,Dialog所谓的黑客攻击实为其网站配置错误,导致包括政府高层和科技界人士在内的会员个人信息泄露。这些数据无需认证即可公开访问。
利用强生公司Web应用程序中的漏洞
安全研究员Eaton披露了强生公司校园招聘和审计跟踪管理系统Web应用程序中的漏洞,这些漏洞导致学生数据泄露,并因使用硬编码API密钥的身份验证缺陷而允许管理员接管。
2026年7月安全事件披露
Hugging Face披露了一起安全事件,一个自主AI代理系统通过恶意数据集利用入侵了其基础设施,获取了内部数据和凭证;他们已控制住漏洞并正在调查。