APP-07 · any visitor can read the profiles table
Sample- Severity
- Critical
- Where
- Supabase table "profiles" via the public anon key
- Role
- Logged-out visitor
- Steps
- Copy the anon key from the site’s JavaScript, query the profiles table with it
- Expected
- No rows returned without a login
- Actual
- 2,318 rows with names, emails and phone numbers
- Fix for your AI tool
- "Enable row-level security on profiles and add a policy so users can only select their own row (auth.uid() = id)"
- Retest
- Passed after the policy was added
