← На главную

Дыра в tl;dv: Firestore открыл чужие записи встреч, CTO молчит полгода

10.08.2026 12:26 · hackernews

Исследователь безопасности нашёл дыру в tl;dv ещё 28 января 2026 года. Прошло полгода — база Firestore у платформы для записи встреч по-прежнему открыта. CTO так и не ответил на письма.

tl;dv — это AI-платформа для записи встреч. Бот подключается к Google Meet, Zoom или Teams, записывает разговор, транскрибирует и делает саммари. Там хранятся продающие звонки, собеседования, обзоры эффективности и внутренние стратегии. Сервисом пользуются больше двух миллионов человек.

Дыра выглядит так. После логина tl;dv выдаёт JWT и меняет его на токен Firebase через gw.tldv.io/v1/users/firebase/token. С этим токеном можно ходить в Firestore-коллекцию meetings. Внутри — все встречи всех аккаунтов, без разделения арендаторов. Каждая запись отдаёт email создателя, ID конференции (это живая комната Google Meet или Teams), статус записи и время. В любой момент в коллекции висит примерно 1 000 встреч со статусом recording. То есть можно взять чужой ID и зайти на живой звонок, куда тебя никто не звал.

Исследователь так и сделал. Зашёл на Google Meet Министерства образования Малайзии: там выступала женщина перед 157 участниками, бот tl;dv уже был в списке. Потом подключился к созвону студентов крупного американского университета: 21 человек, обсуждение прототипа стартапа, на экране настройка Supabase. Метаданные тоже открыты: 181 874 записи о встречах, 84 312 уникальных пользователей, 35 003 домена. Среди них — правительственные совещания из 23 стран, включая Бразилию, Колумбию, Украину и Японию; университеты; корпорации вроде Mitsui-Soko, HubSpot, Confluent. Пик пришёлся на июль 2025 — 43 209 встреч. Исследователь проверил 27 334 ID: больше 1 000 встреч оказались публичными, так что открывались видео и транскрипты. Заодно утёк 715 email-адресов приглашённых.

Ещё у tl;dv сабдомены называются макаронами: carbonara, fusilli, penne, ravioli. Нашёлся и worldcup.tldv.io — внутренняя игра к чемпионату мира по футболу. API энтити Player вообще без авторизации: GET /api/entities/Player отдаёт всех игроков, включая 19 сотрудников с полными именами, корпоративными почтами и личным Gmail Рафаэля Альштадта — того самого контактного лица, которое отвечало «спасибо, CTO скоро вернётся» и замолчало. CTO так и не ответил. Уязвимость работает до сих пор. При этом на странице безопасности красуются значки SOC2, GDPR и EU AI Act, а обещание отвечать за 24 часа на деле обернулось полугодом тишины.

Читать оригинал →