UpGuard found 16,326 Supabase databases whose tables anyone could read
Security firm UpGuard published a scan of about 300,000 websites that use Supabase on September 25, 2026. It found 16,326 databases that returned readable tables to an outside request, and over half showed signs of personal data. UpGuard ties the problem to apps built by AI coding agents, because tables created through the API do not get Row Level Security by default.
Source
Everything Everywhere: Systemic Data Exposure in Supabase AppsUpGuard Research · Original published September 25, 2026
UpGuard's researchers looked for Supabase database addresses and public API keys in the JavaScript of public websites. They then asked each database for data the way a visitor's browser would. Where a database answered with rows, anyone holding the same public key could read them. The counts in the report are UpGuard's own measurement.
How UpGuard counted
UpGuard found candidate sites in two datasets. BuiltWith fingerprints the technology behind websites, and the Chrome UX Report on BigQuery holds raw JavaScript files. Together they produced about 300,000 unique domains with signs of Supabase.
For each domain, UpGuard requested a table named users. A protected database refuses the request. An unprotected one either returns rows or, when that table does not exist, names another readable table as a hint, so an unusual table name hides nothing.
According to UpGuard, 16,326 databases exposed readable tables. The team judged their contents from the table schemas rather than by reading every row. Over half showed indicators of personal data, a smaller share held passwords or authentication tokens, and a very small number had plausible card data.
What was in the tables
UpGuard checked a handful of databases by hand to confirm the data was real, and says it notified the owners where the exposure was significant. The examples it describes include:
- an Indian adult-content platform with 65,467 users, passport and driver's license details, and over 100,000 private messages;
- a US valet service with over 100,000 customers, about 78,000 of them with a license plate number on file;
- a consulate run by an African government, with 25,000 users and their physical addresses;
- a Canadian relocation service with nearly 5,000 records, 884 of them storing a plain-text password.
Why coding agents make it worse
Supabase exposes tables through an automatic REST API, and Postgres Row Level Security (RLS) decides which rows a request may read. Supabase says RLS is on by default for tables created in its dashboard. For tables that migrations or external tools create, it recommends event triggers that switch RLS on automatically.
UpGuard says coding agents usually create tables programmatically through the API, and that path does not enable RLS by itself. The team also found policies that exist but restrict nothing, and public keys used as if they were secret.
UpGuard also cites outside research that names Supabase as the database Claude Code recommends most often. That figure comes from another source, not from UpGuard's own scan.
What Supabase offers to lock it down
Supabase lists these controls in its own review of security changes:
- RLS on by default for tables created in the dashboard;
- event triggers that enable RLS automatically for tables created by migrations or external tools;
- an option to disable the Data API entirely, or to move it off the
publicschema; - email alerts to project owners when a table is created with RLS disabled, and Security Advisors checks that flag such tables.
„Across the candidate set we identified 16,326 databases exposing readable tables.“
Sources
Related
Python 3.15 makes UTF-8 the default encoding and adds explicit lazy imports
Python 3.15.0 came out on October 9, 2026. Files opened without an explicit encoding are now read and written as UTF-8 on every system, and a new lazy import statement defers loading a module until it is used. The release also adds frozendict and a sampling profiler.
Python Software Foundationverified

Deno's team joins Cloudflare, and the Deno runtime gets one more year of updates
Ryan Dahl announced on October 9, 2026 that the whole Deno team is moving to Cloudflare. The Deno runtime will get monthly fixes for one more year before development ends, and Deno Deploy will shut down after six months. JSR keeps running.
Denoverified

Anthropic's OSS Scanner sends open-source maintainers free vulnerability reports that no human has reviewed
Anthropic launched OSS Scanner on October 8, 2026, an opt-in service that scans eligible open-source projects with its strongest models, including Claude Mythos, at no cost. Each report includes a reproducer, an explanation, and a candidate patch when one exists, but no person checks it before it is sent. Anthropic says it expects more than 90% of findings to be real.
Anthropicverified
