Lovable vs Bolt vs v0 vs Replit vs Cursor: a security comparison

Updated 15 August 2026 · Broid — independent security scanning for apps built with AI
Short answer: every one of these platforms now ships security scanning, so "does it have a scanner" no longer separates them. What separates them is architecture — specifically, whether the app you ship puts the browser directly on the database. Lovable does, by design: there is no application server, the browser talks to Supabase through a public key, and Row Level Security is the only access control. v0 defaults to Next.js server components, so the browser cannot reach the database at all. That single difference decides whether one missing database policy is a configuration gap or a total loss of access control on that table. In a scan of 1,072 live vibe-coded apps, 98% had at least one flaw and 172 allowed unauthenticated data deletion — that is this failure mode, measured in the wild.

Why every other comparison of these tools ignores security

Search "Lovable vs Bolt vs v0" and you get a dozen pages comparing generation speed, framework support, pricing and design quality. Almost none of them mention security, and the few that do reduce it to "has a scanner: yes/no."

That checkbox stopped being useful some time in 2026. All five have scanners now. What follows is the comparison nobody publishes: what each one actually checks, when, at what price — and underneath it, the architectural difference that determines what happens when the scanner misses something.

1 · What each platform ships today

All claims below are as at 15 August 2026, taken from each vendor's own published documentation and linked at the foot of this page. This category ships changes weekly, so some of it will age. Where a vendor does not publish something we write "Not published" rather than guessing. If we have anything wrong, tell us at broid@broid.net — we will correct it and say that we did.
 LovableBoltv0 (Vercel)ReplitCursor
Built-in scanningYesYesYesYesTeams/Enterprise only
SinceNot publishedOct 2025Aug 2025May 2025Apr 2026
When it runsOn demand, in editorOn publish + on-demand whole-project auditDuring generation and before deployAutomatically, mid-task since 7 Aug 2026On every pull request
Applies fixesFlagsYes, most of themBlocks deploys; auto-fix not statedAgent fixes findingsComments inline; auto-fix not stated
Detection methodNot publishedNot publishedNot publishedSemgrep — deterministic rulesLLM agents + optional SAST/SCA via MCP
CostFree (conversational reviews use credits)Free, doesn't consume tokensNot publishedFree (Semgrep Community Edition)Charged to the team usage pool
Public trust artefact/.well-known/trust.htmlScore to you onlyNone foundNone foundN/A
Hosts your appYesYesYesYesNo — it's an IDE

The most interesting cell in that table is Replit's detection method. Replit runs Semgrep — around 200 curated deterministic rules for Python, JavaScript and TypeScript — and has published research arguing that LLM-only security scanning is nondeterministic, that "identical vulnerabilities receive different classifications based on minor syntactic changes." Lovable and Bolt do not publish how their scanners detect issues. Whether you weigh that as an advantage depends on your view of recall versus repeatability, but it is a real technical distinction and nobody else writes it down.

The second is v0's number. Vercel reported that in a 30-day window, v0 blocked over 17,000 deployments for exposed secrets alone. Take it as vendor-published and a year old — but the order of magnitude tells you how routinely AI-generated code puts keys where they don't belong.

2 · The part that actually decides your outcome: where the database sits

Scanning is a detection layer bolted onto an architecture. The architecture decides what a miss costs.

 Browser talks to DB directly?Server tier by default?Is RLS the only protection?
LovableYesNo app serverYes, for normal data access
BoltProbably — not confirmedServer functions exist, not the default pathLikely, for direct table access
v0No, by defaultYes — RSC, Server Actions, API routesNo — server code is a second layer
ReplitDepends on what the agent buildsDependsDepends
CursorYour choiceYour choiceYour choice

Lovable: no application server, by design

An independent technical teardown of Lovable's architecture describes it plainly: "the browser communicates directly to the Supabase primitives through a single shared client," and Supabase "exposes its database via PostgREST" — a web server that turns PostgreSQL into a REST API. The stack is React, Vite and TypeScript in the browser; secrets live in Supabase Edge Functions. There is no traditional application server between your user and your data.

Lovable's own documentation states the consequence without stating the cause: "Before going live, make sure every table has Row Level Security policies," and "missing RLS policies are the most common way app data gets exposed."

Supabase's documentation contains the conditional that is the entire security model: your publishable key "is safe to expose with RLS enabled, because row access permission is checked against your access policies and the user's JWT."

With RLS enabled. That conditional is doing all the work. In a browser-direct architecture, a table without an RLS policy isn't weakly defended — it has no access control at all, and it is reachable by anyone who reads your page source, because the key is public by design. This is why CVE-2025-48757 scored CVSS 9.3 rather than a medium. The architecture converts a configuration mistake into a critical vulnerability.

v0: a server tier, by default

v0's documentation defaults to the Next.js App Router — "Next.js provides the most reliable results" — using React Server Components, Server Actions and API routes. Environment variables are server-only unless explicitly prefixed NEXT_PUBLIC_.

In that shape, a missing database policy is mitigated by the fact that the browser can't reach the database at all. It can only call the server functions your app chooses to expose. The failure mode is narrower — you can still write a broken server action, but you have to write it.

Honest caveat: this is a default, not a guarantee. v0 supports Supabase, and Supabase's client SDK can be used from the browser. If you or the AI wire it up that way, you inherit Lovable's failure mode on a Vercel deployment.

Cursor: no architecture of its own

Cursor is an IDE. There is no hosting layer, no deploy gate, no runtime, no database provisioning, no platform firewall — and therefore no "runs on publish", because there is no publish. Its Security Review (Teams and Enterprise plans, charged to the team's usage pool) reviews pull requests; it does not gate shipping. The security of an app built with Cursor is determined entirely by the stack the developer chose.

3 · What the platform gives you for free underneath

Easy to overlook, and it matters: Vercel applies automated DDoS mitigation on all plans regardless of tier, with HTTPS and TLS by default. The configurable WAF — custom rules, IP blocking, managed rulesets — is a paid add-on. Vercel also ships automatic secret scanning that detects and revokes Vercel and v0 credentials leaked to public GitHub, gists and npm, for all users.

These are real protections that no application-level scan replaces, and they're a genuine argument for the hosted platforms over rolling your own.

4 · The evidence: what actually goes wrong in the wild

1,072 live apps scanned — 98% had a flaw

Scope
65,643 URLs crawled, 1,085 unique sites found, 1,072 fully scanned. Apps built with Lovable, v0, Bolt.new, Replit, Windsurf, Tempo Labs and FlutterFlow, all with Supabase backends.
Headline
98% had at least one security flaw. Only 26 sites — 2% — were clean.
Severity
173 sites (16%) had critical vulnerabilities; 313 (29%) critical or high. Average 5.9 vulnerabilities per site, maximum 30.
The criticals
Unauthenticated data deletion: 172 sites. Unauthenticated data modification: 172. Unauthenticated read: 39. Exposed sensitive columns: 34. Unauthenticated insert: 14.
Method
Non-intrusive active testing of REST API endpoints. Apps discovered via dorking, Common Crawl, DNS enumeration and Certificate Transparency.

Read the critical breakdown again. 172 live applications where a stranger with no account could delete your data. That is not a theoretical risk model — it is the browser-direct architecture with a missing policy, counted.

Caveats, because they matter. The study was published by Symbiotic Security, which sells security products. The sample is discoverable public apps with Supabase backends, which biases toward exactly the architecture under discussion. And no per-platform breakdown was published — so nobody, including us, can honestly say "X% of Lovable apps" from this data.

The models are not getting safer

Veracode's GenAI code security research tested 100+ large language models on security-sensitive coding tasks. The 2025 result: 45% of code samples failed security tests, with Java at 72% failure and cross-site scripting defended correctly in only 14% of relevant samples.

The 2026 update is the more important finding: across 150+ models tracked since 2023, the pass rate sits at 55% — statistically unchanged, described as "stubbornly stuck" and "virtually identical to where they stood two years ago." Syntactic correctness is above 95%. Log injection passes 13% of the time; XSS 15%.

The implication for anyone choosing a builder: waiting for the models to get safer is not a strategy. Two years of frontier model progress moved code correctness a long way and code security almost nowhere.

The one head-to-head with identical prompts

A December 2025 study built 15 applications — three each from five tools, from pre-defined identical prompts — and found 69 vulnerabilities. Critical findings by tool: Claude Code 4, Devin 1, OpenAI Codex 1, Cursor 0, Replit 0.

Note carefully that the five tools were Claude Code, Codex, Cursor, Replit and Devin — not Lovable, Bolt or v0, despite several write-ups implying otherwise. Its most useful qualitative finding: the agents were "very prone to business logic vulnerabilities" in API authorisation and e-commerce flows, while the researchers "didn't encounter a single exploitable SQLi or XSS vulnerability." The classic injection bugs are largely solved; authorisation logic is not.

A statistic we're deliberately not using. The most-quoted number in this category is "89% of Lovable apps are missing Supabase RLS," from a widely-shared post claiming to have scanned 100 AI-generated apps. The post is real and the author is upfront that he built a scanner he's promoting — but there is no repository list, no tool disclosure and no reproducible methodology, and nobody has independently corroborated it. It is the most quotable figure in the space and the least verifiable. We'd rather tell you why we're not citing it than repeat it because it flatters our argument.

Whichever platform you built on, the check that matters is the same: can a stranger read your database right now? Broid tests it from outside in seconds, free.

Scan my app free →

5 · Which platform is most secure?

The honest answer is that the question is slightly wrong, and here is the more useful version of it:

If you care about…The answer
Narrowest default failure modev0. A server tier by default means the browser cannot reach your database, so one missed policy is not immediately catastrophic.
Most automatic remediationBolt. It writes and applies most fixes itself, which matters most for non-technical builders — the people least able to act on a findings list.
Most repeatable detectionReplit. Deterministic Semgrep rules running automatically mid-task, plus published research on why that matters.
Public evidence you can show a customerLovable. It's the only one publishing a per-app trust artefact your app's code cannot edit.
Full controlCursor — which also means full responsibility. Nothing is enforced for you.
Not becoming one of the 172Any of them, if you verify RLS on every table before launch. That's the check that dominates all the others.

6 · The security problem the tools themselves have

Worth knowing when you pick an AI coding tool, because this is a new category of risk that didn't exist three years ago.

The pattern across all of these: they were found by outsiders, not by the platforms' own tooling. That's not a slight on any vendor — a two-hour fix and a public post-mortem is a better response than most companies manage. It's a structural fact about self-audit, and it's the reason an independent check is worth ten minutes even when the built-in scan says green.

What to do with all this

1
Run your platform's scan. It's free on four of the five and it reads your source code, which nothing external can do.
2
Verify RLS on every table yourself. In the Supabase SQL editor: select tablename, rowsecurity from pg_tables where schemaname = 'public'; — anything showing false is open to the public key. This one check dominates every other item on this page.
3
Test the live app from outside. Signed out, in a private window, ask your database for a table directly. The 10-minute pre-launch check walks through it, or paste your URL into a scanner and let it do the same thing in seconds.
4
Re-check after every significant change. A table added next month sits outside today's clean result. Security drifts; a single clean scan is a photograph, not a guarantee.

Common questions

Which AI app builder is the most secure?

By default architecture, v0 — it puts a Next.js server tier between the browser and the database, so a missing database policy isn't immediately catastrophic. But the question matters less than it sounds: in a scan of 1,072 live apps across seven platforms, 98% had at least one flaw. The variable that dominates platform choice is whether you verify Row Level Security on every table before you launch.

Do Lovable, Bolt and v0 all have security scanners?

Yes, and so do Replit and Cursor. v0 has applied security checks during generation and before deploy since August 2025; Replit added Semgrep pre-deployment scanning in May 2025 and made it automatic on 7 August 2026; Bolt has checked on publish since October 2025 and added a whole-project audit with auto-fix in mid-2026; Cursor shipped Security Review in April 2026 for Teams and Enterprise plans. Scanning is table stakes now.

Why is missing Row Level Security so much worse on Lovable than elsewhere?

Because a Lovable app has no application server — the browser queries Supabase directly through PostgREST using a key that is public by design. RLS is the only thing deciding what that key may do. A table without a policy has no access control whatsoever, rather than one missing layer among several. On a Next.js app with server actions, the browser can't reach the database at all, so the same mistake has a much smaller blast radius.

What percentage of AI-built apps have security vulnerabilities?

In the largest published scan — 1,072 live apps across seven platforms, all with Supabase backends — 98% had at least one flaw, 16% had a critical one, and the average was 5.9 vulnerabilities per site. It was published by a security vendor and the sample skews toward publicly discoverable apps, so treat it as directional. Separately, Veracode's testing found large language models produce insecure code in roughly 45% of security-sensitive tasks, a rate essentially unchanged over two years.

Is Cursor less secure than Lovable or Bolt?

Not comparable in that way. Cursor is an editor, not a hosting platform — it has no deploy gate, so the security of what you ship is entirely down to your stack. Notably, in the one study using identical prompts across five agentic tools, Cursor and Replit produced zero critical vulnerabilities while Claude Code produced four. Cursor the product has had its own vulnerabilities, including CVE-2025-54136 and a rules-file attack it declined to patch.

Does using an AI builder mean my app is less secure than one built by hand?

Not automatically — a hand-built app by an inexperienced developer can be worse. What AI builders change is the failure distribution: they produce syntactically correct code with systematically weak authorisation, and they default to architectures where one configuration mistake is critical rather than incremental. Veracode's finding that model security performance hasn't improved in two years while syntactic correctness exceeds 95% is exactly that shape.

Will the platforms' built-in scanners eventually make external scanning pointless?

For basic checks, largely yes — and that's a good outcome for everyone. What a built-in scanner can't do is test the deployed app as a stranger meets it, or be independent of the system that generated the code. Every incident listed on this page was found by an outsider rather than by the platform's own tooling, which is the argument in one line.

Check what your live app exposes — free, no signup

Paste your URL and get an A–F grade in seconds, including the live database-exposure test, whichever platform you built on.

Scan my app free

Broid is independent — we don't build apps, so we have no reason to tell you yours is fine.

Sources: Vercel, v0: vibe coding securely · v0 full-stack docs · Lovable security docs · ML6, anatomy of a Lovable app · Supabase, securing your data · Bolt release notes · Semgrep × Replit · Replit, securing AI-generated code · Cursor Security Review · Check Point, MCPoison · Pillar Security, Rules File Backdoor · Symbiotic Security, 1,072 apps scanned · Veracode GenAI code security, Spring 2026 · Vercel April 2026 incident.
Related: Is my Lovable app secure? · Is my AI-built app safe to launch? · Broid vs the platform's own checker
← All Broid guides
Broid Business Solutions · Terms & Privacy
Lovable, Bolt, bolt.new, v0, Vercel, Next.js, Replit, Cursor, Supabase and Firebase are trademarks of their respective owners. Broid is an independent service and is not affiliated with, endorsed by, sponsored by or connected to any company named on this page. All product and company names, logos and brands are the property of their respective owners and are used here for identification and factual comparison only. Comparisons reflect each vendor's publicly available documentation as at 15 August 2026 and may be out of date; verify current behaviour with the vendor. Nothing on this page is legal, compliance or professional security advice, and no automated scan — including ours — guarantees that an application is secure. Corrections: broid@broid.net.