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.

Habit Slayer: Habit Tracker

com.cosdensolutions.habitquestBuild 2.4.0 · 2026-10-09 07:39 UTC

1 matching category · 1 matching occurrence

A · 97/100Static analysis complete

PDF Editor – Edit Everything!

com.desygner.pdfBuild 6.4.2 · 2026-10-09 06:46 UTC

2 matching categories · 20 matching occurrences

F · 3/100Static analysis complete

Lilo Study Timer & Challenges

com.padoski.LiloBuild 1.0.59 · 2026-10-09 04:33 UTC

1 matching category · 1 matching occurrence

A · 96/100Static analysis complete

Real Estate Practice Test 2026

com.edupass.realestateBuild 1.1.13 · 2026-10-09 02:24 UTC

1 matching category · 1 matching occurrence

Limited coverageRecorded findings available · overall grade withheld

Gist Money: Expense Tracker

com.amitm29.am.dailyexpensesmanagerBuild 3.23.1 · 2026-10-08 21:00 UTC

2 matching categories · 4 matching occurrences

A · 95/100Static analysis complete

Luna Forge - Photo to 3D Model

com.lunaminor.lunaforgeBuild 1.2.44 · 2026-10-08 19:33 UTC

2 matching categories · 2 matching occurrences

A · 97/100Static analysis complete

the strip - drag racing game

io.thestrip.gameBuild 1.0.1 · 2026-10-08 15:40 UTC

2 matching categories · 4 matching occurrences

D · 43/100Static analysis complete

StudyStream: Study Together

live.studystream.appBuild 1.1.24 · 2026-10-08 15:17 UTC

2 matching categories · 4 matching occurrences

A · 96/100Static analysis complete

CV Maker : Resume builder App

com.resumoryBuild 1.7 · 2026-10-08 14:45 UTC

1 matching category · 2 matching occurrences

A · 98/100Static analysis complete

Pzizz - Sleep, Nap, Focus

com.pzizz.androidBuild 5.0.43 · 2026-10-08 14:16 UTC

2 matching categories · 2 matching occurrences

B · 83/100Static analysis complete

Plant Flow: Identify & Care

com.kekka.plantflowBuild 1.1.3 · 2026-10-08 08:01 UTC

1 matching category · 1 matching occurrence

A · 97/100Static analysis complete

NIV Bible: With Study Tools

com.andromo.dev646941.app965902Build 1 · 2026-10-08 07:59 UTC

1 matching category · 2 matching occurrences

A · 97/100Static analysis complete

Student Trove - Study Planner

dev.britishtable.studenttroveBuild 2.4.0 · 2026-10-08 07:53 UTC

2 matching categories · 9 matching occurrences

A · 98/100Static analysis complete

Share & Save Recipes ReciBites

com.reci.bitesBuild 4.0 · 2026-10-08 05:37 UTC

1 matching category · 1 matching occurrence

A · 97/100Static analysis complete

RhythmBot: Rhythmic Trainer

com.app.rhythmbot.androidBuild 1.1.0 · 2026-10-08 04:20 UTC

2 matching categories · 2 matching occurrences

A · 98/100Static analysis complete

Meshy AI: 3D Print Model Maker

ai.meshy.appBuild 1.5.0 · 2026-10-08 01:26 UTC

1 matching category · 1 matching occurrence

A · 97/100Static analysis complete

Assaliya Center

app.assaliyacenter.comBuild 2.0.1 · 2026-10-07 15:52 UTC

2 matching categories · 2 matching occurrences

A · 90/100Static analysis complete

Bash The Boss: Office Prank 3D

com.zatg.grumpyboss.pranksBuild 3.6.7 · 2026-10-07 04:30 UTC

1 matching category · 4 matching occurrences

A · 90/100Static analysis complete

Gravl: Macros

com.gravl.macrosBuild 1.8.0 · 2026-10-07 01:36 UTC

1 matching category · 1 matching occurrence

A · 97/100Static analysis complete

Maxim

com.murphysmagic.maximBuild 1.5.21 · 2026-10-06 23:50 UTC

1 matching category · 1 matching occurrence

A · 99/100Static analysis complete

Chayenu

com.ionicframework.chayenu504086Build 5.4.2 · 2026-10-06 22:04 UTC

1 matching category · 1 matching occurrence

B · 89/100Static analysis complete

Domelipa Fake Chat &Video Call

com.simulator.py.domelyypaz.laughBuild 70 · 2026-10-06 15:48 UTC

1 matching category · 1 matching occurrence

A · 99/100Static analysis complete

Speed Wallet - Buy Bitcoin

com.app.speedwalletBuild 2.5.10.0.0.0.fp.gps · 2026-10-03 20:59 UTC

1 matching category · 1 matching occurrence

A · 97/100Static analysis complete

Catatku: Money Manager, Budget

com.simpletechno.catatkuBuild 1.8.4 · 2026-10-03 20:04 UTC

1 matching category · 3 matching occurrences

A · 92/100Static analysis complete

Abstruct - Wallpapers in 4K

com.hampusolsson.abstructBuild 3.0.9 · 2026-09-30 21:55 UTC

1 matching category · 1 matching occurrence

A · 90/100Static analysis complete