I reported this connected January 28th, 2026. It is now July 2026. Six months later. The Firestore database is still wide open. The CTO ne'er responded. I conjecture my emails were excessively agelong and they didn't position them.
What is tl;dv?
tl;dv (Too Long; Didn't View) is an AI gathering signaling platform. It drops a bot into your Google Meet, Zoom, aliases Teams call, records everything, transcribes it, and generates summaries pinch AI. Over 2 cardinal users. Backed by investors. Endorsed by half of LinkedIn's income influencer community.
They shop your income calls, occupation interviews, capacity reviews, soul strategy sessions. The benignant of contented wherever personification says "this telephone is being recorded" and everyone nervously laughs and past shares waste and acquisition secrets for 45 minutes.
The Vulnerability
When you motion up for tl;dv, the level authenticates you pinch a JWT and exchanges it for a Firebase token via gw.tldv.io/v1/users/firebase/token. That token lets you query their Firestore database astatine projects/lmi-store/databases/(default).
The meetings postulation has nary tenant isolation. Any authenticated tl;dv personification tin query each gathering crossed each relationship connected the platform. Each gathering grounds hands you the creator's email address, the convention ID (which is simply a joinable Google Meet aliases Teams room), the provider, the signaling status, and timestamps.
For meetings successful signaling status, that convention ID is simply a live, progressive call. You tin watch the postulation successful existent time, spot a gathering commencement recording, drawback the ID, and locomotion into someone's telephone uninvited. At immoderate fixed clip location are astir 1,000 meetings pinch status: recording sitting successful the collection. A 1000 unrecorded calls pinch exposed convention IDs. An attacker pinch a bot could subordinate each of them simultaneously.

I Joined 2 Meetings
I did it.
Grabbed a convention ID from Firestore and joined a unrecorded Google Meet belonging to the Malaysian Ministry of Education. A woman was presenting to complete 157 participants. The tl;dv bot was already successful the subordinate list. I was successful the aforesaid call. Nobody invited me. The Firestore database did.

I besides joined a telephone wherever students from a awesome US assemblage were building a startup app. 21 group successful the call. They were screen-sharing their full project, discussing prototypes, and, I kid you not, talking astir really they needed to adhd client-side validation for .edu email addresses. They were besides mounting up Supabase unrecorded connected screen, and each I could deliberation was "please group up RLS policies" because astir group don't, and past you extremity up for illustration tl;dv.
I wanted to opportunity thing truthful badly. "Hey, you mightiness want server-side validation too." But this was a impervious of concept, not a consultation.

The Scale
I queried the Firestore meetings postulation and saw location were 181,874 gathering records belonging to 84,312 unsocial users crossed 35,003 email domains.
Government meetings from 23 countries: Brazil, Colombia, Peru, Ukraine, El Salvador, the Philippines, Chile, Indonesia, Mexico, the United States, Qatar, Malaysia, Uzbekistan, Sri Lanka, Haiti, South Africa, Jamaica, Honduras, Argentina, Thailand, Japan, Israel, and Belize. All .gov domains. Government labor signaling calls connected a level that lets immoderate free-tier personification enumerate the full thing.
University meetings from Berkeley, the University of Tokyo, De La Salle, Universidad Nacional de Colombia. Dozens of .edu and .ac domains.
Corporate meetings from each 35,000 remaining domains. Mitsui-Soko (484 meetings crossed 4 location offices), Mitsui Fudosan, HubSpot, Confluent, Mekari, AnyMind Group. Every institution that ever utilized tl;dv had their gathering metadata successful the aforesaid unprotected collection.
Peak period was July 2025 pinch 43,209 meetings. Busiest clip slot: Wednesday astatine 2pm UTC, 7,804 meetings. Hump-day standup hour.
But Wait, There's More
I wanted to cognize really overmuch existent contented was accessible too, by default meetings are backstage (Meaning you cant watch the video aliases spot the transcript), truthful I scraped 27,334 gathering IDs and checked which ones were public. Over 1,000 were. 715 invitee emails exposed crossed 228 domains.
Highlights: a Brazilian authorities conservation gathering (PACTO Mata Atlântica) pinch participants from WWF, The Nature Conservancy, Conservation International, WRI, and the São Paulo authorities government. Meetings from Ukraine's Ministry of Digital Transformation. A HubSpot income call. Sessions involving Universidad Nacional de Colombia and Chile's Cámara Verde.
The Pasta Infrastructure
tl;dv names their microservices aft pasta. A subdomain scan reveals cappellini, carbonara, fusilli, pasta, penne, puttanesca-v0, and ravioli, each nether tldv.io. An full Italian edifice worthy of Express servers.
Too Long; Didn't Score
While exploring their subdomains I recovered https://worldcup.tldv.io. A FIFA World Cup 2026 vibecoded prediction crippled built connected Base44 for tl;dv employees. It's called "World Cup Pick'em" and their soul squad is named "Too Long; Didn't Score." Cute.
The Player entity API has zero authentication. GET /api/entities/Player returns each subordinate grounds without a convention cookie. 43 players. 19 @tldv.io employees pinch afloat names and firm emails.
Raphael Allstadt, my disclosure interaction who gave vague reassurances and past went quiet, came successful 2nd spot pinch 298 points. His individual Gmail was besides successful the API response. Player #5 connected the world leaderboard is "Super Duper CEO." I'll fto you conjecture who that is.
The Prediction and Fixture entities are besides wide open. A institution that records millions of people's meetings vibecoded an soul nosy app that leaks their ain worker directory. The irony is al dente.

Disclosure
On January 28th I messaged Raphael Allstadt connected LinkedIn and told him I'd recovered a immense vulnerability that leaks personification data. He responded wrong minutes: "thank you! tin you study it to our CTO and we will look astatine it immediately?" I sent the email. He said "thank you!" I asked astir a reward. "My CTO will travel backmost to you," he said.
The CTO ne'er came backmost to me.
January 29th: "your cto hasnt reached retired yet btw and its not fixed." January 30th, Raphael: "I americium judge the squad is reviewing it very very soon ❤️" February 14th: "havent sewage an email and the vulnerability stilll works." Raphael: "He'll travel backmost ☺️" I told him to possibly hole the vulnerability and not time off customers exposed. February 19th: "We're connected it. It needs immoderate time, but remainder assured we're pursuing through. For further communication, i'll urge reaching retired to our CTO."
The CTO who ne'er responded. That CTO.
March 6th: "still not fixed." Seen by Raphael astatine 5:42 PM. No reply.
July 22nd: "still not fixed..." No reply.
Their information page is simply a trophy case. SOC2 compliant. GDPR compliant. EU AI Act compliant. Hosted successful the EU. AES-256 encryption. A laminitis committedness video. Six compliance badges lined up successful a row. Buried astatine the bottom, a azygous line: "If you person discovered a privateness aliases information rumor that we should address, please ever fto america cognize astatine [email protected]. Our information squad will respond wrong 24 hours." I emailed the CTO directly. Six months. No response. Their Firestore database has amended uptime than their inbox.
| Late January 2026 | Discovered Firestore tenant isolation bypass |
| January 28, 2026 | Reached retired to Raphael Allstadt (LinkedIn) and emailed CTO + Raphael |
| January 29, 2026 | Raphael gives vague reassurance |
| February - March 2026 | Multiple follow-ups. CTO ne'er responds. |
| July 2026 | Still not fixed. Still nary response. Buon appetito. |
To tl;dv
Your level records people's astir delicate conversations. Job interviews. Sales negotiations. Government briefings. Your users trusted you pinch contented they explicitly consented to record.
Fix the Firestore tenant isolation. Firestore information rules beryllium for this. You already do it correctly for each different postulation (users, chats, transcripts, clips, recordings, videos, notes, teams, organizations each return 403). You conscionable forgot meetings.
Put auth connected the World Cup app aliases return it down. Your worker directory is 1 GET petition away.
Respond to information researchers. Especially erstwhile they're telling you that each gathering connected your level is queryable by anyone pinch a free account.
So agelong and acknowledgment for each the pasta :3
English (US) ·
Indonesian (ID) ·