Can Supabase apps be hacked?
Get instant answers about your app's security.
Short Answer
Yes — and for Supabase it isn't hypothetical. Public keys are expected. Private data should stay private. demonstrated real exploitation in the wild. An anon or publishable key is not a secret.
Detailed Answer
Public keys are expected. Private data should stay private.
An anon or publishable key is not a secret. Table grants and RLS policies control what clients can access. A service_role or secret key must stay server-side. A successful request alone does not prove that a row could be changed or deleted.
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):
- **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
- **Database Access** — Checks discovered tables for data accessible to public clients. Read results do not establish whether inserts, updates or deletes are allowed.
- **Service Key Exposure** — Scans for service_role keys that should never be in client-side code.
- **Storage and API Exposure** — Checks discovered storage and API surfaces for observable exposure. Coverage depends on what the deployed app reveals and the enabled tests.
- **Auth Configuration** — Checks observable auth behavior, with supported authenticated checks when you supply a test login. This is not a full review of dashboard settings.
Security Research & Statistics
of Lovable applications (170 out of 1,645) had exposed user data in the CVE-2025-48757 incident
Source: CVE-2025-48757 security advisory
of data breaches involve databases with misconfigured access controls
Source: Verizon Data Breach Investigations Report
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.”
“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.”
Check Your Supabase App's Security
vas scans for all the security issues mentioned above. Run your first scan free to see your security score and every issue count in minutes. Unlock every finding with a copy-paste fix from $19/month.
Run your first scan freeMore Questions About This Topic
How quickly can a Supabase app be hacked after it goes live?
For Supabase, this isn't theoretical — Public keys are expected. Private data should stay private. 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. An anon or publishable key is not a secret. Table grants and RLS policies control what clients can access. A service_role or secret key must stay server-side. A successful request alone does not prove that a row could be changed or deleted. 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.
Explore Related Resources
Related Guides
Related Vulnerabilities
More on Supabase Security
Every angle of Supabase security, from the specific findings we detect to step-by-step fixes.
Supabase Security Scanner
Hub page: scan your Supabase app for vulnerabilities.
Supabase Security Risks
Specific risks we find in Supabase apps, with real-world examples.
Supabase Security Issues
Issues grouped by severity with detection and fix steps.
Supabase Best Practices
Remediation playbook derived from Supabase's actual failure modes.
Is Supabase Safe?
Honest assessment of Supabase's production readiness.
Supabase Security Checklist
Pre-launch checklist covering every finding class for Supabase.
How to Secure Supabase Apps
Step-by-step hardening guide for Supabase deployments.
What People Say About Supabase Security
Community sentiment on Supabase security, compared with our scan data.