Skip to content
Guide

Lovable app security checklist: is your app secure?

Lovable, the platform, and the app you built on it are secured separately. Lovable scans for common mistakes, but your app is only as safe as its own access rules, keys and server code. Check that row-level security is on for every exposed table and matches who may see what, that no secret key reaches the browser, that payments are confirmed on the server, and that someone watches the live app.

Plutonapps EngineeringUpdated Facts checked as of
Behind CVE-2025-48757
Row-level security off, or too broad
Safe to ship
Supabase publishable (anon) key
Never ship
Service role or other secret keys
Re-check
After every change that touches data or access

Is Lovable secure, and does that make my app secure?

Lovable says it supports SOC 2 and GDPR requirements and publishes its security documentation in its trust center. That covers Lovable's platform: its infrastructure, its access controls, its staff. It does not cover the rules inside your app, because you (with Lovable's help) wrote those.

Lovable's security scan runs a quick check every time you publish: a database review, a dependency audit and an MCP server check. A deeper scan, started by hand (or on a schedule, for Lovable Enterprise customers), also reviews access control, unauthenticated endpoints, injection, leaked secrets, payments, authentication and exposed personal data. Lovable's own documentation is clear that these tools cannot guarantee complete security. Treat the scan as a smoke alarm, not an inspection.

What was CVE-2025-48757, and does it affect my app?

CVE-2025-48757, published in May 2025, describes insufficient row-level security policies in Lovable-generated sites up to 15 April 2025 that let unauthenticated attackers read or write database tables. The US National Vulnerability Database lists it with a critical CVSS 3.1 score of 9.3 and notes that Lovable disputes it, on the grounds that each customer is responsible for protecting their own app's data.

The researcher who reported it, Matt Palmer, says he scanned 1,645 projects and found 303 vulnerable endpoints across 170 of them, and that Lovable shipped its security scan with Lovable 2.0 in April 2025. Whatever view you take of the dispute, the practical lesson is the same: if your app was generated before then, or if you have changed tables since, check your policies yourself. A policy that exists is not the same as a policy that is right.

What should a Lovable security checklist cover?

Lovable app security checklist, with a test for each item
CheckWhy it mattersHow to test it
RLS enabled on every table in an exposed schemaWithout it, Supabase lets any role with a grant read and write the whole tableRun Supabase's Security Advisor; lint 0013 (rls_disabled_in_public) flags it
Policies match your rulesA policy such as USING (true) passes a scan and still lets everyone throughSign in as user A, request user B's rows through the API, expect nothing back
Tables with RLS but no policyThey deny everything, which shows up as a broken feature, not a leakAdvisor lint 0008 (rls_enabled_no_policy); then write the policy the feature needs
No secret keys in the browserThe service role key bypasses every RLS policySearch the built JavaScript for sb_secret_ or a legacy service_role key; rotate any key that was ever shipped
Server-side checks on anything that costs moneyClient code can be edited by the person using itCall your edge function directly with a changed price or plan and expect a refusal
Rate limiting on sign-up, sign-in and AI callsUnlimited requests turn into abuse or a surprise billAgainst staging, script 100 quick requests and confirm most are refused
Leaked-password protection and MFA for adminsPasswords reused from other breaches are a common way inTry a known-breached password at sign-up
An audit log and error monitoringYou cannot investigate what you did not recordMake an admin change on staging and find it in the log
From Supabase's RLS, API key and database advisor documentation and Lovable's security documentation, as of 30 Sep 2026.

How do I fix Supabase RLS errors in a Lovable app?

RLS errors come in two opposite kinds, and it helps to know which one you have.

  • Permission denied (Postgres error 42501, or an empty result). RLS is on and no policy allows the request. That is RLS working. Write the narrowest policy that lets the feature work, for example rows where the owner column equals the signed-in user's ID.
  • Everything works for everyone. The more dangerous case. A policy such as USING (true), or a missing RLS switch, lets any user through. Supabase's advisor flags permissive policies (lint 0024, permissive_rls_policy) and policies that exist while RLS is off (lint 0007, policy_exists_rls_disabled).
  • Policies that read user metadata. Supabase warns against basing policies on metadata a user can edit themselves (lint 0015, rls_references_user_metadata). Use a table your server controls, such as a team membership table, instead.

When you ask Lovable to fix a policy, re-run the two-user test afterwards. A prompt that makes an error go away can do it by widening access, which is exactly the failure you are trying to prevent.

Which keys are safe to expose in a Lovable app?

Supabase's documentation says the publishable (anon) key is safe to expose, because it only reaches what row-level security allows. A secret key, including the service role key, bypasses every RLS policy and must never go in a browser, a shipped app or source control. The glossary entry on the anon key and the service role key explains the difference. Third-party secrets, such as Stripe or email provider keys, belong in edge function secrets, not in the app's code. See secrets management.

How often should a live Lovable app be re-checked?

After every change that touches data, access or payments, and on a schedule for everything else: dependencies get new vulnerabilities, keys should be rotated, and new tables arrive with new policies. That is why security works better as a habit than an audit. On our plans, security checks, code review and regression tests run on every change before it reaches production, and an engineer other than the author approves it.

Frequently asked questions

Is Lovable safe to use for a real business app?

Lovable is a reasonable place to build and shape an app, and it scans for common security mistakes. Whether the finished app is safe depends on its own access rules, keys and server code, which you should verify before real users and real data arrive. Lovable's documentation says its scans cannot guarantee complete security.

Is the Supabase anon key in my Lovable app a security problem?

No. Supabase documents the publishable (anon) key as safe to expose, because it can only reach what row-level security allows. It becomes a problem only when RLS is off or too broad. The service role key is different: it bypasses RLS and must never be in the browser.

Does CVE-2025-48757 still affect Lovable apps?

The CVE covers Lovable-generated sites up to 15 April 2025, and Lovable disputes it. Lovable has since added a security scan. Any app, old or new, can still ship a policy that is too broad, so test your own tables with two user accounts rather than relying on the date.

What does a Lovable security review cost?

One-off reviews are sold by many freelancers and firms at a fixed price. On a Plutonapps plan, security checks and code review run on every change as part of the monthly price, alongside building, testing, releasing and running the app. Plans and prices are on our pricing page.

Can I run the security checks myself?

Yes. Lovable runs its quick scan when you publish, Supabase's Security Advisor is in your project dashboard, and the two-user test in the checklist needs only two test accounts. What is harder to do alone is keep doing it on every change, for as long as the app is live.

From our work

Terms on this page

Sources

Every outside fact on this page was checked against the linked source on 30 September 2026. Prices and plans change; follow the links for the current figures.

  1. Lovable: Security scan documentation
  2. Lovable: Security
  3. NVD: CVE-2025-48757
  4. Matt Palmer: Statement on CVE-2025-48757
  5. Supabase: Row Level Security
  6. Supabase: API keys
  7. Supabase: Database advisors