← Read the analysis

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.

Identifier: continuum-ai-built-app-security-scan-2026-07-v1Collected: July 2026Updated: August 6, 2026

Headline findings

The aggregate results

Counts are primary. Percentages below retain one decimal place; the report's “41%” and “16%” figures are rounded.

66live apps screenedcomplete sample
32used Supabase48.5% of 66
13had a readable table40.6% of 32
5exposed sensitive tables15.6% of 32
Published observations and their denominators
MeasurePopulationCountPercent
Live AI-built apps screenedLive, reachable apps attributed to one of the five included AI-building tools.All sampled apps66 / 66100%
Apps using SupabaseApps whose public client bundle identified a Supabase project URL and public anon key.All sampled apps32 / 6648.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 apps13 / 3240.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 apps5 / 3215.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

  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 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