Tea leaked 72,000 ID photos and a million DMs. Whether vibe coding did it is another story.
- Date
- Jul 25, 2025
- Tools involved
- Impact
- About 72,000 images exposed, including roughly 13,000 selfies and photo IDs, plus more than 1.1 million private DMs
- Root cause
- Unsecured Firebase storage bucket plus an open API; vibe-coding attribution is contested (Tea says the data sat in a legacy pre-2024 system)
What happened
On July 25, 2025, an anonymous 4chan post pointed to an unsecured Firebase storage bucket belonging to Tea, an app built for women to share safety notes about men. Roughly 72,000 images were downloadable by anyone who found the URL. About 13,000 of those were selfies and photo IDs that users had submitted to verify their identity, and about 59,000 more came from posts, comments, and DMs. For an app whose whole pitch is safety, verification photos in an open bucket is close to the worst-case inventory.
It got worse. On July 28 and 29, security researcher Kasra Rahjerdi and 404 Media confirmed a second, separate exposure: an unsecured database and API let any logged-in user pull other users' private direct messages. More than 1.1 million DMs were exposed, and some of them were very recent, which undercut early hopes that only old data was affected.
Then came the attribution fight. Several commentators and security blogs held the breach up as a flagship vibe coding disaster, the thing that happens when AI-generated code ships without security review. That framing is disputed. Tea stated that the compromised data came from a legacy storage system predating February 2024, and the first breach was a classic Firebase rules misconfiguration, a failure mode that predates AI coding assistants by many years. There is no confirmed public evidence that Tea's vulnerable code was AI-generated.
This incident is in the tracker because it became one of the most cited talking points in the vibe coding security debate, not because the AI link is proven. The honest summary: the exposure was real, enormous, and hit exactly the users who most needed privacy. The claim that vibe coding caused it remains contested, and the primary evidence points at old-fashioned storage misconfiguration.
Impact
Around 72,000 images were exposed in the first breach, including about 13,000 verification selfies and photo IDs and about 59,000 images pulled from posts, comments, and DMs. The second exposure was arguably worse: more than 1.1 million private direct messages, some very recent, readable by any logged-in user via an unsecured database and API. Because Tea's user base consists of women sharing safety information about men, the exposed IDs and DMs carried real-world safety risk well beyond typical breach fallout.
Root cause
Two separate failures. The first was an unsecured Firebase storage bucket, a rules misconfiguration that let anyone download the contents. The second was an unsecured database and API that let any logged-in user read other users' DMs, an authorization failure rather than an authentication one. The popular claim that vibe coding produced these flaws is contested: Tea said the compromised data came from a legacy storage system predating February 2024, and no public evidence confirms the vulnerable code was AI-generated.
How to not be this entry
- Test your storage buckets and database from the outside. Open an incognito window, take only your app's public keys, and try to read what an anonymous stranger can read. Tea's first breach was a bucket anyone could download from. Read the fix guide: Supabase Row Level Security is off: your whole database is readable with the anon key
- Being logged in is not authorization. Tea's second exposure let any authenticated user read other users' DMs. Every endpoint that returns user data must check that the requester owns that data. Read the fix guide: No auth on your AI-generated API endpoints: anyone can call your backend
- Audit legacy storage when you migrate systems. Tea attributed the exposed data to a pre-2024 legacy store. Old buckets full of ID photos do not stop being your problem because the new stack is better. Read the fix guide: Lovable Supabase RLS not enabled: anyone can read your app's data (CVE-2025-48757)
- Collect and retain the minimum. Verification selfies and photo IDs are radioactive; if you must collect them, delete them once verification is done so a future bucket leak has less to leak.
Tools that actually fix this
Recommended because they address the failure mode above, not because of the payout. Some are affiliate links; see how we choose.
If your AI-built app uses Supabase, Row Level Security is the actual fix for exposed data, and it is free. The dashboard's Security Advisor lists every table you left open.
Try Supabase →Drop-in authentication that handles sessions, tokens, and protected routes properly, so you stop shipping the hand-rolled auth an AI guessed at. Generous free tier for a real app.
Try Clerk →Frequently asked questions
Was the Tea app breach caused by vibe coding?
It is contested. Several commentators blamed the Tea app breach on vibe coding, meaning AI-generated code shipped without security review, but Tea stated the compromised data came from a legacy storage system predating February 2024, and the first breach was a classic Firebase rules misconfiguration. There is no confirmed public evidence that Tea's vulnerable code was AI-generated.
What data was exposed in the Tea app breach?
The Tea app breach exposed roughly 72,000 images, including about 13,000 verification selfies and photo IDs and about 59,000 images from posts, comments, and DMs, via an unsecured Firebase storage bucket. A second exposure, confirmed days later, let any logged-in user read more than 1.1 million private direct messages through an unsecured database and API.
Who discovered the Tea app data breach?
The first Tea exposure surfaced through an anonymous 4chan post on July 25, 2025, which pointed to the unsecured Firebase storage bucket. The second and larger exposure, covering more than 1.1 million private DMs, was confirmed on July 28 and 29 by security researcher Kasra Rahjerdi and the outlet 404 Media.
What is the Tea app?
Tea is a dating-safety app built for women to share safety notes about men. That mission is what made the July 2025 breach so severe: the exposed data included identity verification photos and private direct messages from users who joined the app specifically to stay safe.
Sources
- 404 Media: Tea's second database exposed over a million private messages
- Simon Willison: Notes on the official statement from Tea
- Barracuda: Vibe coding and the Tea app breach, why security can't be an afterthought
Related error guides
Supabase Row Level Security is off: your whole database is readable with the anon key
No auth on your AI-generated API endpoints: anyone can call your backend
Lovable Supabase RLS not enabled: anyone can read your app's data (CVE-2025-48757)
The Vibe Oops briefing
One email when something ships to production that should not have. New incidents, new error guides, no filler.