criticalfirebase-storage-public-readchecked on every page we scan

Firebase Storage bucket is publicly listable

Anyone can list the contents of your Storage bucket without signing in, which means every uploaded file — user documents, profile images, anything your app stores — can be enumerated and downloaded by strangers.

Why it matters

Anyone can list the contents of your Storage bucket without signing in, which means every uploaded file — user documents, profile images, anything your app stores — can be enumerated and downloaded by strangers. The bucket name is published in your client-side JavaScript, so finding it takes no effort. This usually means the default open Storage rules were never tightened before launch.

How ShipReady detects it

Firebase Realtime Database exposure — the Firebase counterpart to the Supabase RLS check, covering the other dominant BaaS in the AI-built-app ecosystem. Uses Firebase's own documented, unauthenticated REST endpoint (.json?shallow=true, which returns only top-level KEY NAMES, not data) so the probe stays passive and minimal. A real unauthenticated read is unambiguous evidence of an open-rules misconfiguration. Firestore is intentionally out of scope for V1 (it requires guessed collection names to probe deterministically) — this check covers the Realtime Database only.

Detection is deterministic. ShipReady reports this only when it observes the condition directly, and prefers to miss a real problem over inventing one. Rule version 1.1.0.

How to fix it

This is the prompt ShipReady puts in your report — written to be pasted straight into Cursor, Claude Code, or whichever assistant built the app.

Your Firebase Storage bucket allows unauthenticated listing, so anyone can enumerate and download stored files. Update your Storage security rules to require authentication (and per-user path ownership) instead of leaving the permissive default in place — for example, allow read/write on 'users/{{uid}}/**' only when request.auth.uid matches. Deploy the rules, then re-check that an anonymous list request is rejected.

Frequently asked questions

What does "Firebase Storage bucket is publicly listable" mean?
Anyone can list the contents of your Storage bucket without signing in, which means every uploaded file — user documents, profile images, anything your app stores — can be enumerated and downloaded by strangers.
How serious is it?
ShipReady rates this critical. Fix before launch. On its own, this is enough to compromise the application.
How do I fix it?
Paste the fix prompt on this page into Cursor, Claude Code or your AI editor. It is the same prompt ShipReady puts in your report.
Can I check my own site?
Yes — ShipReady scans up to ten pages of any public site for free and reports this alongside every other check.

Related checks

Does your site have this?

ShipReady checks this and 73 other things across up to ten pages of your site. Free, no signup.

Scan my site