← Read the analysis

Public dataset · version 2.0

AI-built app database exposure scan, October 2026

Of 500 live AI-built apps scanned, 177 ran on Supabase. Thirty-one of those 177 (17.5%, about 1 in 6) had at least one table that returned data to an unauthenticated request using only the app's public anon key. None leaked a full-access service-role key.

Identifier: continuum-ai-built-app-security-scan-2026-10-v2Collected: October 2026Updated: November 4, 2026

Headline findings

The aggregate results

Counts are primary. Percentages below retain one decimal place. The headline “1 in 6” figure rounds the 17.5% readable-table result.

500live apps scanned497 reachable
177used Supabase35.4% of 500
31had a readable table17.5% of 177
8exposed sensitive tables4.5% of 177
Published observations and their denominators
MeasurePopulationCountPercent
Live AI-built apps scannedLive AI-built apps in the stratified sample that were scanned. 497 of the 500 were reachable at scan time.All sampled apps500 / 500100%
Apps using SupabaseApps whose public client bundle identified a Supabase project URL and public anon key.All sampled apps177 / 50035.4%
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 apps31 / 17717.5%
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 apps8 / 1774.5%

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 500 live AI-built apps built with Lovable, Bolt, and base44. Candidate hosts came from certificate-transparency logs and Wayback Machine archives of the builders' deployment domains, about 5,300 unique hosts, which a liveness filter reduced to 4,512 reachable apps. A deterministic stratified sample of 500 was drawn across the three builders so no single builder dominated the headline. The observations were collected in October 2026, and 497 of the 500 were reachable at scan time. 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 177 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

  1. The public JavaScript bundle delivered by each live app was inspected.
  2. When a Supabase project URL and anon key were present, one unauthenticated REST GET request was made per table with limit=1.
  3. 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 500-app convenience sample and should not be projected to all AI-built apps.
  • The 323 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 October 2026 observation.
  • An earlier June 2026 wave scanned 66 apps and found a higher 40.6% readable-table rate. That was a smaller, earlier sample. This larger wave is more representative, and the lower rate reflects both the broader sample and tightening builder defaults.

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, October 2026.” Continuum, version 2.0, October 10, 2026. https://uxcontinuum.com/data/ai-built-app-security-scan-2026

Dataset ID
continuum-ai-built-app-security-scan-2026-10-v2
AI-Built App Security Scan Dataset: 500 Live Apps (2026)