Уязвимость была зарегистрирована 28 января 2026 года. К моменту публикации прошло уже полгода — база Firestore до сих пор открыта. CTO компании так и не ответил на обращения; вероятно, письма оказались слишком длинными для чтения.
Что такое tl;dv
tl;dv (Too Long; Didn't View — «слишком долго, чтобы смотреть») — платформа для записи AI-совещаний. Бот подключается к звонку в Google Meet, Zoom или Teams, записывает разговор, транскрибирует его и генерирует резюме с помощью AI. У платформы более 2 миллионов пользователей, инвесторы за спиной и целая армия LinkedIn-инфлюенсеров из сферы продаж, рекомендующих сервис.
На серверах tl;dv хранятся звонки по продажам, собеседования, performance-ревью, внутренние стратегические сессии — тот самый контент, где кто-то произносит «этот звонок записывается», все нервно смеются, а затем следующие 45 минут делятся коммерческими секретами.
Уязвимость
При регистрации в tl;dv платформа выдаёт пользователю JWT-токен, который обменивается на Firebase-токен через gw.tldv.io/v1/users/firebase/token. Этот токен открывает доступ к базе Firestore по пути projects/lmi-store/databases/(default).
Коллекция meetings не имела изоляции по клиентам (tenant isolation). Любой авторизованный пользователь tl;dv мог запросить данные обо всех совещаниях всех аккаунтов на платформе. Каждая запись содержала email создателя встречи, ID конференции (пригодный для подключения к комнате Google Meet или Teams), провайдера, статус записи и временные метки.
Для встреч со статусом recording этот ID конференции ведёт на живой, активный звонок. Можно наблюдать за коллекцией в реальном времени, увидеть момент начала записи, забрать ID и без приглашения зайти в чужой звонок. В любой момент времени в коллекции находится порядка 1000 совещаний со статусом recording — тысяча активных звонков с открытыми идентификаторами конференций. Атакующий с ботом мог подключиться ко всем сразу.

Проверка на практике: два подключения
Проверка прошла по факту.
Получив ID конференции из Firestore, исследователь подключился к активному Google Meet Министерства образования Малайзии. Женщина выступала перед более чем 157 участниками. Бот tl;dv уже присутствовал в списке участников. Исследователь оказался в том же звонке — никто его не приглашал, доступ дала база Firestore.

Второе подключение — к звонку, где студенты крупного американского университета разрабатывали стартап-приложение. В звонке было 21 человек, они демонстрировали весь проект на экране, обсуждали прототипы и — без иронии — говорили о необходимости добавить клиентскую валидацию для email-адресов с доменом .edu. Параллельно на экране настраивали Supabase, и единственной мыслью было: «пожалуйста, настройте RLS-политики», потому что большинство этого не делает — и в итоге получается история вроде tl;dv.
Хотелось вмешаться и подсказать: «серверная валидация тоже не помешает». Но это была демонстрация уязвимости, а не консультация.

Масштаб проблемы
Запрос к коллекции meetings в Firestore показал 181 874 записи совещаний, принадлежащих 84 312 уникальным пользователям из 35 003 email-доменов.
Среди них — государственные совещания из 23 стран: Бразилии, Колумбии, Перу, Украины, Сальвадора, Филиппин, Чили, Индонезии, Мексики, США, Катара, Малайзии, Узбекистана, Шри-Ланки, Гаити, ЮАР, Ямайки, Гондураса, Аргентины, Таиланда, Японии, Израиля и Белиза. Все домены — .gov. Госслужащие записывали звонки на платформе, которая позволяет любому пользователю бесплатного тарифа перебрать всю базу целиком.
Университетские встречи из Беркли, Токийского университета, De La Salle, Национального университета Колумбии — десятки доменов .edu и .ac.
Корпоративные совещания — из всех остальных 35 000 доменов. Mitsui-Soko (484 совещания из четырёх региональных офисов), Mitsui Fudosan, HubSpot, Confluent, Mekari, AnyMind Group. Метаданные совещаний любой компании, когда-либо использовавшей tl;dv, оказались в одной незащищённой коллекции.
Пиковым месяцем стал июль 2025 года — 43 209 совещаний. Самый загруженный временной слот: среда, 14:00 UTC, 7804 совещания — час стендапов посреди рабочей недели.
И это ещё не всё
Отдельно проверялось, сколько реального контента доступно за пределами метаданных: по умолчанию встречи приватны (видео и транскрипт закрыты), поэтому из 27 334 собранных ID совещаний была проверена публичность каждого. Публичными оказались более 1000. Из них извлечено 715 email-адресов участников из 228 доменов.
Среди находок — бразильское государственное совещание по охране природы (PACTO Mata Atlântica) с участниками из WWF, The Nature Conservancy, Conservation International, WRI и правительства штата Сан-Паулу. Встречи Министерства цифровой трансформации Украины. Звонок отдела продаж HubSpot. Сессии с участием Национального университета Колумбии и чилийской Cámara Verde.
Инфраструктура из пасты
Микросервисы tl;dv названы в честь видов пасты. Сканирование поддоменов выявило cappellini, carbonara, fusilli, pasta, penne, puttanesca-v0 и ravioli — всё под доменом tldv.io. Целый итальянский ресторан из Express-серверов.
Too Long; Didn't Score
При изучении поддоменов обнаружился https://worldcup.tldv.io — внутренняя игра-предсказание для сотрудников tl;dv на тему чемпионата мира по футболу 2026 года, собранная на Base44 в стиле «vibecoding». Игра называется «World Cup Pick'em», а внутренняя команда разработчиков — «Too Long; Didn't Score». Забавно.
API сущности Player не требует авторизации вовсе. Запрос GET /api/entities/Player возвращает все записи игроков без сессионной куки: 43 игрока, из них 19 сотрудников @tldv.io с полными именами и корпоративными email.
Рафаэль Аллштадт, контакт по вопросам раскрытия уязвимостей, дававший невнятные заверения и затем пропавший, занял 2-е место с 298 очками. Его личный Gmail также попал в ответ API. Игрок №5 в общем рейтинге — «Super Duper CEO». Догадаться, кто это, не составит труда.
Сущности Prediction и Fixture также полностью открыты. Компания, записывающая совещания миллионов людей, собрала на скорую руку внутреннее развлекательное приложение, которое утекает собственный справочник сотрудников. Ирония получилась al dente.

Хроника раскрытия
28 января исследователь написал Рафаэлю Аллштадту в LinkedIn, сообщив об обнаружении крупной уязвимости, приводящей к утечке пользовательских данных. Ответ пришёл в течение нескольких минут: «Спасибо! Можете сообщить об этом нашему CTO, мы сразу же разберёмся?» Письмо было отправлено. В ответ — «Спасибо!». На вопрос о вознаграждении: «Мой CTO с вами свяжется».
CTO не связался.
29 января: «Ваш CTO ещё не выходил на связь, и уязвимость не устранена». 30 января, Рафаэль: «Уверен, команда очень скоро всё рассмотрит ❤️». 14 февраля: «Письма так и не было, уязвимость всё ещё работает». Рафаэль: «Он свяжется ☺️». В ответ было предложено просто исправить уязвимость и не оставлять клиентов под угрозой. 19 февраля: «Мы в процессе. Нужно немного времени, но будьте уверены — мы доведём дело до конца. Для дальнейшей связи рекомендую обращаться к нашему CTO».
Тот самый CTO, который так и не ответил.
6 марта: «Всё ещё не исправлено». Сообщение прочитано Рафаэлем в 17:42. Ответа не последовало.
22 июля: «Всё ещё не исправлено...» Ответа не последовало.
Страница безопасности компании выглядит как витрина наград: соответствие SOC2, GDPR, EU AI Act. Хостинг в ЕС. Шифрование AES-256. Видео с обещаниями основателя. Шесть значков соответствия в ряд. И в самом низу — одна строчка: «Если вы обнаружили проблему с приватностью или безопасностью, о которой нам следует знать, пожалуйста, всегда сообщайте нам по адресу security@tldv.io. Наша команда безопасности ответит в течение 24 часов». Письмо CTO было отправлено напрямую. Прошло полгода. Ответа нет. У базы Firestore, судя по всему, аптайм выше, чем у почтового ящика компании.
| Дата | Событие |
|---|---|
| Конец января 2026 | Обнаружено отсутствие изоляции клиентов в Firestore |
| 28 января 2026 | Обращение к Рафаэлю Аллштадту (LinkedIn) и письмо CTO + Рафаэлю |
| 29 января 2026 | Рафаэль даёт невнятные заверения |
| Февраль – март 2026 | Множественные напоминания. CTO не отвечает. |
| Июль 2026 | Уязвимость всё ещё не устранена. Ответа так и нет. Buon appetito. |
Обращение к tl;dv
Платформа записывает самые чувствительные разговоры людей: собеседования, переговоры о продажах, государственные брифинги. Пользователи доверили сервису контент, на запись которого дали явное согласие.
Изоляция клиентов в Firestore должна быть исправлена — для этого существуют правила безопасности Firestore. Для всех остальных коллекций (users, chats, transcripts, clips, recordings, videos, notes, teams, organizations) всё настроено корректно и возвращает 403. Забыли только про meetings.
Приложение про чемпионат мира нужно либо защитить авторизацией, либо отключить — до справочника сотрудников там всего один GET-запрос.
Стоит также отвечать исследователям безопасности — особенно когда речь о том, что любое совещание на платформе доступно для запроса любому пользователю с бесплатным аккаунтом.
So long and thanks for all the pasta :3