Firebase
Security FAQ

What are common security mistakes in Firebase apps?

Get instant answers about your app's security.

Short Answer

The mistakes we see repeatedly in Firebase apps: test mode rules in production; auth without authorization; admin sdk credential exposure. Each one is a specific failure mode of Firebase's workflow — not generic programming mistakes.

Detailed Answer

The mistakes we actually see in Firebase apps

These aren't hypothetical — they're what VAS finds when it scans a Firebase app for the first time. Listed in order of how often they appear:

1. Test Mode Rules in Production

*Why it happens:* Security Rules allowing all reads/writes, often forgotten after development. *What it's cost teams:* Firebase Console shows warnings but many developers ignore the 30-day deadline.

*Fix:* Replace test rules immediately. Use firebase emulator to test production rules.

2. Auth Without Authorization

*Why it happens:* Rules check if user is logged in but not if they own the data.

*Fix:* Add request.auth.uid == userId checks to all document access rules.

3. Admin SDK Credential Exposure

*Why it happens:* Service account JSON in frontend code grants full admin access.

*Fix:* Admin SDK is server-only. Remove from client code immediately.

4. Storage Rules Misconfiguration

*Why it happens:* Cloud Storage with permissive rules allows malicious uploads.

*Fix:* Write storage.rules with proper auth checks and file type validation.

5. Unvalidated Data Writes

*Why it happens:* Rules check auth but don't validate data structure or types.

*Fix:* Add data validation in rules: request.resource.data.keys().hasOnly([...])

Why these specifically show up in Firebase (and not as much elsewhere)

Firebase's workflow optimizes for speed — idea to deployed app in minutes. The mistakes above aren't character flaws, they're the predictable output of a speed-optimized workflow that doesn't enforce security gates. "Test Mode Rules in Production" is high-likelihood in Firebase specifically because nothing in Firebase's UI flows blocks it. The fix is treating security gates as non-negotiable, not as "I'll get to it later."

Security Research & Statistics

10.3%

of Lovable applications (170 out of 1,645) had exposed user data in the CVE-2025-48757 incident

Source: CVE-2025-48757 security advisory

91%

of data breaches involve databases with misconfigured access controls

Source: Verizon Data Breach Investigations Report

4.45 million USD

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.

Simon WillisonSecurity Researcher, Django Co-creator

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.

Security Research CommunityCollective wisdom from security researchers

Check Your Firebase App's Security

VAS scans for all the security issues mentioned above. Get a comprehensive security report in minutes.

Get Starter Scan

More Questions About This Topic

How common are these mistakes in Firebase apps — is this overstated?

Understated, if anything. The majority of Firebase apps scanned for the first time have at least one of the high-likelihood mistakes above. "Test Mode Rules in Production" in particular is the default state of a new Firebase app before any security work. Our sample skews toward apps whose owners care enough to scan — the base rate for never-scanned Firebase apps is higher.

What are the actual consequences when these mistakes ship to production?

The consequence ladder: (a) data exposure — emails, passwords, PII, payment info readable by anyone; (b) account takeover — if auth is weak, legitimate accounts get hijacked; (c) third-party abuse — an exposed OpenAI or Stripe key gets drained of quota or money; (d) regulatory — GDPR/CCPA notification requirements trigger at ~first exposure; (e) reputational — "Firebase app data breach" is a headline that doesn't age well. Each consequence compounds the next.

How do I avoid these mistakes when building with Firebase?

Three non-negotiable habits: (1) Configure Firestore Security Rules at table/collection creation — before writing any feature code. (2) Treat any paste-a-key-into-code as a bug from the first keystroke, not "I'll move it to env vars later." (3) Run a VAS scan before every production deploy — five minutes of scanning prevents hours-to-weeks of breach response. Specifically: Replace test rules immediately. Use firebase emulator to test production rules..