Public dataset · version 1.0
AI-built app database exposure scan, July 2026
Of 66 live apps screened, 32 used Supabase. Thirteen of those 32 (40.6%, rounded to 41%) had at least one table that returned data to an unauthenticated request using only the app's public anon key.
Headline findings
The aggregate results
Counts are primary. Percentages below retain one decimal place; the report's “41%” and “16%” figures are rounded.
| Measure | Population | Count | Percent |
|---|---|---|---|
| Live AI-built apps screenedLive, reachable apps attributed to one of the five included AI-building tools. | All sampled apps | 66 / 66 | 100% |
| Apps using SupabaseApps whose public client bundle identified a Supabase project URL and public anon key. | All sampled apps | 32 / 66 | 48.5% |
| Supabase apps with at least one anonymously readable tableAt least one table returned a row to an unauthenticated GET request made with only the public anon key. | Supabase-backed apps | 13 / 32 | 40.6% |
| Supabase apps with at least one sensitive anonymously readable tableAt least one anonymously readable table contained a clearly non-public category such as user, subscription, private message, support, audit, employee, booking, or regulated-operation records. | Supabase-backed apps | 5 / 32 | 15.6% |
Plain-English methodology
What was sampled, when, and how
Question
How often could a person who was not logged in read a database table in a live, AI-built app using only the Supabase anon key that the app already publishes to every visitor?
Sample and dates
The sample contained 66 live, reachable apps built with Lovable, Bolt, Cursor, base44, or Tempo. Candidate apps came from certificate-transparency logs for the builders' deployment domains, then were filtered to apps that were online. The observations were collected in July 2026. This was a convenience sample of publicly discoverable deployments, not a random sample of all AI-built software.
What was measured
First, the scan recorded whether each app used Supabase. For the 32 apps that did, it measured whether at least one table returned a row to an unauthenticated read made with the public anon key. A second classification recorded whether any readable table was clearly sensitive rather than intentionally public.
Sensitive categories included user and profile records, sessions, subscriptions, private chat or support messages, audit logs, employee records, bookings, and regulated-operation records. Public catalogs, blog posts, and feature-flag tables were not counted as sensitive.
How the measurement was made
- The public JavaScript bundle delivered by each live app was inspected.
- When a Supabase project URL and anon key were present, one unauthenticated REST
GETrequest was made per table withlimit=1. - An app was counted once in the readable-table measure if any tested table returned a row. It was counted once in the sensitive-table measure if any such table was clearly non-public.
No write requests were made. No authenticated routes or service-role credentials were used. No app was named, and no row contents or app-level results were retained for publication. Only the aggregate counts on this page were kept.
Interpretation and limitations
- The result describes this 66-app convenience sample and should not be projected to all AI-built apps.
- The 34 non-Supabase apps were not tested for equivalent access-control failures on other backend platforms in this scan.
- A one-row read establishes that anonymous data access was possible at scan time; it does not measure the total number of exposed rows.
- An empty table can produce no row even if its access policy is permissive, so this method may undercount readable tables.
- Apps may have changed their database policies since the July 2026 observation.
Cite this dataset
A stable source for the numbers
Link to this page when quoting the scan. The identifier and version make the aggregate data unambiguous, while the analysis article provides narrative context.
Turley, Matthew. “AI-Built App Database Exposure Scan, July 2026.” Continuum, version 1.0, July 5, 2026. https://uxcontinuum.com/data/ai-built-app-security-scan-2026
- Dataset ID
- continuum-ai-built-app-security-scan-2026-07-v1
- Source analysis
- Read the full exposure report →