Supabase
Security FAQ

Can Supabase apps be hacked?

Get instant answers about your app's security.

Short Answer

Yes — and for Supabase it isn't hypothetical. Most Supabase Security Issues: Missing RLS demonstrated real exploitation in the wild. The majority of Supabase security incidents stem from tables without Row Level Security enabled.

Detailed Answer

Most Supabase Security Issues: Missing RLS

The majority of Supabase security incidents stem from tables without Row Level Security enabled. When RLS is disabled, anyone with your anon key can read, modify, or delete all data in that table.

Supabase-Specific Attack Vectors

These are the paths attackers actually take into Supabase applications — not a generic OWASP list, but what automated scanners and security researchers find when they look at Supabase apps specifically, given the stack (Supabase (Postgres + RLS) as the database):

  1. **Tables Without RLS**: Any table without RLS enabled is fully exposed via the public API.

2. **Service Role Key Exposure**: The service_role key bypasses all RLS and grants admin access.

3. **Permissive RLS Policies**: Policies that allow more access than intended (e.g., any authenticated user).

4. **Unprotected RPC Functions**: Database functions callable without authentication.

5. **Storage Bucket Exposure**: Storage buckets without policies allow public read/write.

**Supabase-Specific Risk**: Supabase apps typically ship with the public Supabase anon key embedded in frontend code. That is by design — but only works safely if Row Level Security is enabled on every table. Attackers routinely query Supabase endpoints directly using the anon key from your bundle. A single table without RLS is a full data leak.

Real-world example

This is the #1 vulnerability in Supabase apps, affecting majority of vibe-coded projects.

How these issues get discovered

This isn't targeted — automated scanners run across the entire internet looking for known patterns, and Supabase apps surface like everything else. Supabase URLs follow a predictable pattern (`*.supabase.co`), making Supabase apps easy to fingerprint. Once identified, the scanner probes the specific vulnerability classes listed above.

What a security scan of a Supabase app looks at

  • **RLS Policies** — Tests your Row Level Security by attempting to read/write data as anonymous and authenticated users.
  • **Service Key Exposure** — Scans for service_role keys that should never be in client-side code.
  • **RPC Functions** — Tests your database functions for proper authentication requirements.
  • **Auth Configuration** — Checks authentication settings for weak passwords, missing verification, and rate limiting.

Security Research & Statistics

10.3%

of Lovable applications (170 out of 1,645) had exposed user data in the CVE-2025-48757 incident

Source: CVE-2025-48757 security advisory

91%

of data breaches involve databases with misconfigured access controls

Source: Verizon Data Breach Investigations Report

4.45 million USD

average cost of a data breach in 2023

Source: IBM Cost of a Data Breach Report 2023

Expert Perspectives

Vibe coding your way to a production codebase is clearly risky. Most of the work we do as software engineers involves evolving existing systems, where the quality and understandability of the underlying code is crucial.

Simon WillisonSecurity Researcher, Django Co-creator

The problem with AI-generated code isn't that it doesn't work - it's that it works just well enough to ship, but contains subtle security flaws that are hard to spot.

Security Research CommunityCollective wisdom from security researchers

Check Your Supabase App's Security

VAS scans for all the security issues mentioned above. Get a comprehensive security report in minutes.

Get Starter Scan

More Questions About This Topic

How quickly can a Supabase app be hacked after it goes live?

For Supabase, this isn't theoretical — Most Supabase Security Issues: Missing RLS established the timeline. Once the vulnerability pattern became public, affected apps were discovered within hours via automated scanning of Supabase's recognizable fingerprint. Any Supabase app deployed without a security check faces the same discovery window: minutes to hours, not days.

What do attackers look for first in Supabase apps?

Tables Without RLS. Any table without RLS enabled is fully exposed via the public API. This is the highest-ROI finding for an attacker because it requires no interaction from the user and often exposes the full dataset at once. Secondary targets are service role key exposure and related misconfigurations.

Has any Supabase app actually been breached?

Yes. The majority of Supabase security incidents stem from tables without Row Level Security enabled. When RLS is disabled, anyone with your anon key can read, modify, or delete all data in that table. This wasn't a flaw in Supabase itself — it was a misconfiguration in apps built with Supabase that a scanner would have caught pre-deployment. The same misconfiguration pattern continues to appear in new Supabase apps that launch without a security check.