Reference detail

Apps with a Supabase backend

Android apps shipping a Supabase project URL or its anon key. Both are public by design; whether the data behind them is protected depends entirely on Row Level Security.

Mapped findings are review signals. Interpret each app’s build, scan date and coverage before drawing a conclusion. Historical verification describes only its recorded scan time.

What this finding means

Supabase gives an app a hosted Postgres database reachable over a REST and realtime API. An app that talks to it ships two things: the project URL and the anon key, a signed token identifying the project and the anonymous role.

Neither is a secret. The anon key is designed to sit in client code, exactly like a Firebase web config. Finding it in an APK is expected and is not, by itself, a leak.

We have recorded a Supabase reference in 85 apps. What the finding tells you is which apps depend on Supabase, so the one control that matters can be checked.

Row Level Security is the only thing standing in front of the data

Supabase exposes tables through PostgREST. With the anon key and a project URL, anyone can issue queries against any table the anonymous role is permitted to read. The permission boundary is Postgres Row Level Security, declared per table as policies.

The trap is the default. A table created without RLS enabled is readable and often writable by the anon role. RLS is not on until you turn it on, per table, and a policy-less table with RLS enabled denies everything while a table with RLS disabled allows everything. Enabling RLS on four tables and forgetting the fifth leaves the fifth fully open.

This differs from Firebase in a way that matters. Firebase has a single rules document covering the database, so an unprotected path is visible in one place. Supabase spreads the decision across every table, and new tables arrive from migrations, not from a security review.

How to fix it

  • Enable RLS on every table in the public schema, including tables added later by a migration.
  • Write explicit policies for each role. A table with RLS on and no policy denies all access, which is the safe starting point.
  • Never ship the service_role key. It bypasses RLS entirely and belongs only on a server you control.
  • Check views and functions as well as tables: a SECURITY DEFINER function can return rows the caller's policies would have blocked.
  • Rotate the anon key if you have ever used it as though it were a secret, and treat the rotation as a release, since every installed client holds it.

Why we do not test this for you

Checking whether a Supabase project is actually open would mean sending its anon key to the service and seeing what comes back. That is authenticating with a credential found in someone else's app, and we do not do it — not to establish a finding, and not to make a report more compelling.

The line we hold is narrower: anonymous requests to resources whose owner configured them to answer anyone, using no credential at all. A Supabase project does not fall inside it, so these are reported as references and verified only on an authorized scan of your own app, where you are the one asking.

Mapped checks & review guidance (2)

Supabase project reference

Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open.

Browse this category

Supabase anon key

Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.

Browse this category

Apps with mapped findings

Reset

85 matching apps · Counts below include only this page’s mapped finding types.

AI Notes: Voice, Scan & PDF

com.ai.notes.notepad.notebookBuild 1.2.11 · 2026-09-30 14:37 UTC

1 matching category · 6 matching occurrences

A · 97/100Static analysis complete

Ayda - Period Tracker

com.health.aydaBuild 3.11.1 · 2026-09-30 13:52 UTC

1 matching category · 1 matching occurrence

A · 98/100Static analysis complete

MyGarden - Plant tracking

com.mg.mygardenBuild 2.2.0 · 2026-09-30 11:37 UTC

1 matching category · 1 matching occurrence

A · 99/100Static analysis complete

Gasolino - Cheap Gas Prices

io.timberapps.gasolinoBuild 1.0.1 · 2026-09-29 14:25 UTC

1 matching category · 1 matching occurrence

A · 97/100Static analysis complete

One4Wall: 4K Wallpapers & Live

one4studio.wallpaper.one4wallBuild 5.2.8 · 2026-09-29 11:38 UTC

1 matching category · 1 matching occurrence

A · 97/100Static analysis complete

Manglish Keyboard

com.clusterdev.malayalamkeyboardBuild 17.6.3 · 2026-09-29 07:53 UTC

2 matching categories · 3 matching occurrences

A · 94/100Static analysis complete

Rolly: AI Budget Money Tracker

com.jc.rollymoneytrackerBuild 15.5.2 · 2026-09-23 16:26 UTC

2 matching categories · 45 matching occurrences

A · 90/100Static analysis complete

ResumeUp - AI Resume Builder

com.uptech.resumeCoverAppUpBuild 1.6.7 · 2026-09-22 09:58 UTC

2 matching categories · 3 matching occurrences

B · 79/100Static analysis complete

Anify: Anime, Manga & Novels

com.cleanstack.anifyBuild Satori 1.9 · 2026-09-19 03:03 UTC

2 matching categories · 2 matching occurrences

A · 96/100Static analysis complete

Meme Maker - AI Meme Generator

com.adex77.memefast.mememakerBuild 1.0.17 · 2026-09-11 15:20 UTC

1 matching category · 1 matching occurrence

A · 91/100Static analysis complete