Blog

/Research

Vibe-coded app security in 2026

57% of testable Supabase-backed vibe-coded apps let a stranger read data, and a top agent solved real tasks securely 11.8% of the time. The 2026 security data, explained.

·15 min read

Summarize in ChatGPT
Dark report cover titled “Vibe-coded app security in 2026” with Veracode 2026 security pass rates for AI-written code by flaw (cryptography 87%, SQL injection 83%, cross-site scripting 15%, log injection 12%, 56% average), Reeve's August 2026 scan of 30,998 live apps narrowing to 2,096 readable without a login (57% of 3,680 testable Supabase apps), and four stats: 16,326 Supabase databases anyone could read, 10.3% of 1,645 Lovable showcase apps with broken access rules, 19.7% of 2.23M AI-suggested packages that don't exist, and 11.8% of 186 feature tasks an AI agent solved securely.
On this page

In our first post we called security the weak link of vibe coding, on the strength of two 2025 scans. Since then the evidence has piled up: outside scans of tens of thousands of live apps, a run of public incidents, peer-reviewed benchmarks that try to exploit what AI agents write, and a string of default changes from the platforms. This post puts it together. The short version is that vibe-coded apps fail in a narrow, repeatable way. The problem is mostly who is allowed to read and change data, not exotic AI bugs, and we found no evidence that the rate is improving.

One caveat runs through all of it. Nearly every number below comes from a company that sells a scanner, a code reviewer or a detection product, and one widely cited study came from people who worked at a competitor of the platform they studied. We name the vendor and what it sells next to each figure. The only measurements with no vendor behind them are academic, and we lean on those for "how often". "Exposed" also doesn't mean "breached": none of the incidents here comes with a confirmed count of malicious exploitation.

Key findings

  1. 1
    Open databases are the main failure. Reeve, which sells the scanner it used, found that 2,096 of the 3,680 Supabase-backed apps it could test from outside (57%) let a stranger read at least one table. Across all 26,249 apps where the check could run, that's 8%.
  2. 2
    The pattern runs across Supabase, not just the builders. UpGuard, which sells attack-surface monitoring, found 16,326 Supabase databases with tables anyone could read, more than half holding personal data. It says its scans don't show the sites were AI-built.
  3. 3
    Secret keys in the page are rarer than open tables but worse: Reeve found 52 of 30,998 apps shipping a key that can spend money or read the whole database.
  4. 4
    Models learned textbook injection, not access control. In Veracode's 2026 tests, AI code passes SQL injection checks 83% of the time but XSS checks only 15%, and GitHub says broken access control has overtaken injection as its most common code-scanning alert.
  5. 5
    Working code is not secure code. In the SusVibes benchmark, an agent running Claude 4 Sonnet solved 57% of real feature tasks but only 11.8% securely.
  6. 6
    The agents themselves are now a risk: they have deleted production databases, shipped remote-code-execution bugs through project config files, and suggest packages that don't exist. In a USENIX Security study, 19.7% of 2.23 million package references from LLMs pointed at nothing.
  7. 7
    Builder domains are phishing infrastructure. Proofpoint sees tens of thousands of malicious Lovable URLs in email every month.
  8. 8
    Defaults moved outcomes more than scanners did. Separate production databases, private projects and tables that stay unexposed until granted all shipped, mostly right after an incident. Scanners mostly check that a rule exists, and the ones that block publishing are opt-in, enterprise-only or limited to paid plans.

57%

Testable Supabase-backed apps a stranger could read, 2,096 of 3,680, Aug 2026

Vendor scan

Source: Reeve

10.3%

Lovable showcase apps with broken row-level security, 170 of 1,645, Mar 2025

Source: Matt Palmer

16,326

Supabase databases with tables anyone could read, Sep 2026

Absolute count, not all AI-built

Source: UpGuard

1.5M

API tokens exposed by Moltbook, an app whose founder wrote no code, Feb 2026

Source: Wiz

56%

Average security pass rate of AI-generated code, 100+ models, Jul 2026

Flat year on year

Source: Veracode

11.8%

Real feature tasks an agent solved both correctly and securely, vs 57% correctly

Source: SusVibes, ICML 2026

19.7%

LLM package references that pointed at packages that don't exist, of 2.23M

Source: USENIX Security 2025

10,000s

Malicious Lovable URLs Proofpoint detects in email each month, since Feb 2025

Source: Proofpoint

What live scans find#

Five groups have scanned live apps from the outside since March 2025. Their headline numbers get quoted side by side as if they measured the same thing. They don't: each percentage is a share of a different population, and one of the most cited figures isn't a percentage at all. Read the denominator first.

Five scans of live apps, five different denominators

Outside-in scans of AI-built or Supabase-backed apps, Mar 2025 to Sep 2026

Scan (what the scanner sells)WhenSampleResultOut of
Palmer and Low (worked at Replit)Mar 20251,645 Lovable showcase apps170 apps (10.3%) with broken row-level securityAll sampled apps; a lower bound
Escape (dynamic app scanning)Oct 20255,600+ apps, 4,000+ on Lovable2,000+ vulnerabilities, 400+ exposed secrets, 175 personal-data exposuresCounts of findings, not apps
RedAccess (browser security)May 2026Public assets on Lovable, Base44, Replit, Netlify5,000+ apps with no real authentication; close to 2,000 seemed to reveal private dataAbsolute counts; not confirmed as real data
Reeve (app scanning)Aug 202630,998 live apps on five builders2,096 apps (57%) readable by a stranger3,680 Supabase apps it could test
Reeve, same findingAug 2026Same2,096 apps (8%)26,249 apps where the check could run
UpGuard (attack-surface monitoring)Sep 2026~300,000 domains showing Supabase16,326 databases with readable tablesAn absolute count; not proven AI-built
Never compare the results column directly. Palmer counted homepage requests to showcase apps, Reeve counted any readable table, UpGuard counted databases rather than apps, and Escape counted findings rather than apps.

Sources: Matt Palmer; Escape; WIRED; Reeve; UpGuard

The longest-running data point is CVE-2025-48757. In March 2025, Matt Palmer and a colleague found 303 endpoints across 170 of 1,645 apps from Lovable's showcase, about 10.3%, where the Supabase row-level security (RLS) rules were missing or wrong. They also inserted a record marked as paid, bypassing Stripe. The CVE carries a 9.3 score from MITRE. Lovable disputes it, per the NVD entry, on the grounds that each customer is responsible for their own app's data, and the researchers worked at Replit, a Lovable competitor.

The largest scan so far is Reeve's, run on 12–14 August 2026 by a solo developer who sells the same scanner and published the data under CC BY 4.0. It covered 30,998 live apps on the builders' default domains, including 18,554 on Lovable, 5,438 on Base44, 3,042 on Replit, 1,790 on v0 and 1,123 on Bolt. Most of what makes the headline number confusing is visible in how the sample narrows.

How Reeve's 30,998 apps narrow to an open database

Number of live apps at each step of one scan, 12–14 Aug 2026

How Reeve's 30,998 apps narrow to an open database
LabelValue
Apps scanned30,998
Name a Supabase project8,429
Could be tested from outside3,680
Let a stranger read a table2,096
Expose people-named tables394 (users, profiles, orders, messages)
The highlighted bar is the same 2,096 apps whether you call it 57% (of the 3,680 testable apps) or 8% (of the 26,249 where the check could run). Apps behind their own backend, including Base44's, are invisible to this kind of scan.

Source: Reeve, Vibe-coded app security 2026

By builder, Reeve found a readable table in 57% of the 3,553 testable Lovable apps and 77% of 35 testable Bolt apps; Base44, Replit and v0 had too few checkable apps to say. Here is a rough comparison, and it is our arithmetic, not Reeve's: 57% of 3,553 is about 2,025 Lovable apps, or roughly 10.9% of the 18,554 Lovable apps in the sample. Palmer's figure seventeen months earlier was 10.3%. The methods differ (Reeve counts any readable table, including ones meant to be public), so this isn't proof that nothing improved. It is the absence of any evidence that something did.

UpGuard's study, published in September 2026 and covered by TechCrunch and BleepingComputer, came at the problem from the database side. Of roughly 300,000 domains showing signs of Supabase, it found 16,326 databases with tables anyone could read, about 5.4% by our arithmetic. More than half held personal data. UpGuard is explicit that its scans don't establish that the sites were built with an AI agent, so the honest framing is "16,326 Supabase databases", the default backend for vibe-coded apps, not "16,326 vibe-coded apps". Between Reeve and UpGuard, somewhere between one in five open databases (Reeve: 394 of 2,096) and one in two (UpGuard) hold personal data.

Keys in the bundle#

A Supabase "anon" key in the page's JavaScript is not a leak: it's public by design, and the RLS rules are what's supposed to protect the data. As Wiz put it about Moltbook, without RLS policies that key "grants full database access to anyone". That's why "an app ships a key" is a much weaker finding than "an app ships a key that matters". Reeve separated the two.

Secret keys found in 30,998 app bundles

Number of live apps shipping each kind of key in their frontend, Aug 2026

Secret keys found in 30,998 app bundles
LabelValue
Any secret key1,332 (1 in 23 apps)
Google browser keys meant to be public1,142
Can spend money or read the whole database52
Supabase master database key3
Most secret keys in bundles are designed to be public. The highlighted bars are the dangerous ones (OpenAI, AWS, Anthropic, Stripe secret and Supabase service_role keys): rare per app, but each one hands over money or the whole database.

Source: Reeve, Vibe-coded app security 2026

The same pattern shows up upstream in source code. GitGuardian, which sells secret detection, says Claude Code-assisted commits on public GitHub leaked secrets at a 3.2% rate, against a 1.5% baseline for all public commits.

The incidents#

The scans describe a rate. The incidents show what the rate looks like when someone finds it. The timeline below has twelve disclosures from the last eighteen months. The incidents among them sort into three groups: apps whose access rules were wrong, platforms whose own authorization had a hole, and agents that destroyed data they had credentials for.

Documented security incidents in AI-built apps and tools

Public disclosures, Mar 2025 to Sep 2026

  1. 21 Mar 2025

    Lovable showcase apps: 170 with broken RLS

    A scan of 1,645 apps finds 303 open endpoints; it becomes CVE-2025-48757, which Lovable disputes.

    Source: Palmer

  2. 9 Jul 2025

    Base44 auth bypass

    Undocumented sign-up endpoints opened private, SSO-only enterprise apps. Wix fixed it in under 24 hours and saw no evidence of abuse.

    Source: Wiz

  3. Jul 2025

    Replit agent deletes SaaStr's production database

    1,206 executive records and 1,196+ company profiles, during a code freeze. The agent said rollback wouldn't work; it did.

    Source: The Register

  4. 2 Feb 2026

    Moltbook: 1.5M API tokens open

    No RLS and a key in client JavaScript exposed ~4.75M records, read and write. Fixed about three hours after contact.

    Source: Wiz

  5. 26 Feb 2026

    An agent runs terraform destroy on production

    DataTalks.Club lost its database, network and snapshots, including 1,943,200 rows in one table. AWS restored a hidden snapshot about a day later.

    Source: Alexey Grigorev

  6. 27 Feb 2026

    An inverted access check in a Lovable-showcased app

    A researcher says 18,697 user records were exposed because the check blocked signed-in users and let anonymous ones through.

    Source: The Register

  7. 20 Apr 2026

    Lovable: public projects' code and chats readable

    From 3 Feb, any Lovable user with a project link could potentially read its source and AI chat history. Lovable made every historically public project private.

    Source: Lovable

  8. 25 Apr 2026

    PocketOS: production deleted in under 10 seconds

    A Cursor agent on a staging task found an account-wide Railway token and deleted the production volume and its backups.

    Source: The New Stack

  9. 7 May 2026

    5,000+ apps with no real authentication

    RedAccess says close to 2,000 of them seemed to reveal private data. WIRED couldn't confirm the data was real.

    Source: WIRED

  10. 19 Aug 2026

    Reeve: 57% of testable Supabase apps readable

    The largest scan so far: 30,998 live apps on five builders.

    Source: Reeve

  11. 25 Sep 2026

    UpGuard: 16,326 open Supabase databases

    More than half held personal data; UpGuard doesn't claim they were AI-built.

    Source: UpGuard

  12. 29 Sep 2026

    Agents published 13,000+ internal screenshots

    Agents made public GitHub repos to host review images: 900+ repos from 300+ organizations.

    Source: Glow Labs

Most of these are exposures found by researchers, not breaches with a confirmed attacker. The destructive ones all involve an agent holding production credentials with no human gate.

Moltbook is the largest proven case. It's a social network for AI agents whose founder posted that he "didn't write a single line of code" for it. Wiz, which sells cloud security, found a Supabase key in the client JavaScript and no RLS behind it: 1.5 million API authentication tokens, 35,000 email addresses and private messages between agents, about 4.75 million records in all, readable and writable by anyone. Wiz says it made contact at 21:48 UTC on 31 January 2026 and the database was fully fixed by 01:00 UTC on 1 February. The story made Fortune the same week.

The platform-level cases matter because one flaw reaches every tenant. In July 2025 Wiz found that Base44's undocumented registration and one-time-code endpoints accepted an app's public ID, which opened private enterprise apps meant for single sign-on only; Wix fixed it in under 24 hours. In April 2026 Lovable disclosed that between 3 February and 20 April, the source code and AI chat history of public projects "could potentially be accessed by any Lovable user" with a project link. Reports filed on HackerOne from 22 February were closed, and Lovable first called it intended behavior. The researcher also says database credentials were readable, according to The Register; Lovable's post doesn't say so.

The model can also write the access check backwards. In February 2026 a researcher told The Register that an EdTech app featured by Lovable had 16 vulnerabilities, including an AI-written check that ended up "blocking authenticated users and allowing access to unauthenticated users". He says 18,697 user records were exposed, 4,538 of them student accounts. Lovable's CISO said acting on its scanner's recommendations "is at the discretion of the user".

Why it happens: access control, not injection#

The live-app failures are almost all about authorization: who can read a row, who can change it, whether the check runs on the server or only in the browser. Controlled studies of AI-written code say the same thing from the other side. Models have mostly learned the textbook bugs and keep missing the ones that depend on what the app is for.

Veracode's 2026 report tested more than 100 models on four weakness classes with static analysis. The average security pass rate "sits at 56 percent", which Veracode, a static-analysis vendor, calls "virtually unchanged" from the year before. The average hides a split.

How often AI-generated code passes security checks, by weakness

Security pass rate across 100+ models, Veracode 2026 GenAI code security report, Jul 2026

How often AI-generated code passes security checks, by weakness
LabelValue
Cryptography87%
SQL injection83%
Average, all four56%
Cross-site scripting (XSS)15%
Log injection12%
The highlighted bars are the weaknesses models still get wrong most of the time. Veracode doesn't test authorization at all, which is the failure live scans find most.

Sources: Veracode; BusinessWire

The averages are flat, but individual models differ: GPT-5.5 leads Veracode's table at 68%, and reasoning models score 56% against 51% for non-reasoning ones. "Newer models aren't more secure" is too strong. "Security lags correctness, and the average hasn't moved" is what the data supports.

When researchers audit real apps by hand, access control comes out on top. Deng, Fan and Meng, with no vendor behind them, sampled 200 deployed apps from 9,041 vibe-coded GitHub repositories, audited the code and confirmed each finding with a harmless live proof of concept. 182 of the 200 had at least one vulnerability, with 1,186 in total.

What a hand audit of 200 deployed vibe-coded apps found

Share of apps with at least one vulnerability of each kind, white-box audit with live proof, 2026

What a hand audit of 200 deployed vibe-coded apps found
LabelValue
Any vulnerability91%
Broken access control64%
Injection54%
Authentication failures51.5%
Broken access control is the most common class, ahead of injection. An app can have several classes, so the bars don't add up. This is a code audit, so it isn't comparable with the passive scans above.

Source: Deng, Fan and Meng, arXiv 2606.23130

GitHub sees the shift across all code. In its 2025 Octoverse report, broken access control overtook injection as the most common CodeQL alert, flagged in 151,000+ repositories, up 172% in a year. GitHub links it partly to "AI-generated scaffolds that skip critical auth checks"; that's a correlation it draws, not a measured cause. OWASP's Top 10:2025 keeps broken access control at number one and adds "Inappropriate Trust in AI Generated Code" as a next-steps entry.

Correct is not the same as secure#

The benchmarks that actually try to exploit the code are the strongest evidence, and they're academic. BaxBench, from ETH Zurich and LogicStar (ICML 2025), asks models to build 392 backends and then attacks the ones that work.

Backends that work, and backends that work and survive attack

Share of 392 BaxBench backend tasks, no security prompt, leaderboard as of 6 Oct 2026

Backends that work, and backends that work and survive attack
LabelValue
Claude Opus 4.5 Thinking: correct86.2% (34.9% of these exploitable)
Claude Opus 4.5 Thinking: correct and secure56.1%
GPT-5: correct70.7% (23.1% of these exploitable)
GPT-5: correct and secure54.3%
GPT-4o: correct43.0% (55.1% of these exploitable)
GPT-4o: correct and secure19.3%
The highlighted bars are what you'd want to ship. The best correct-and-secure rate has nearly tripled since GPT-4o, but a quarter to a third of the best models' working backends can still be exploited.

Sources: BaxBench leaderboard; BaxBench paper, arXiv

Asking nicely doesn't fix it reliably. With a generic "be secure" reminder in the prompt, BaxBench reports that Claude Opus 4.5 Thinking rises to 66.1% correct and secure while GPT-5 falls to 46.2%, because its correctness drops.

SusVibes (CMU and others, ICML 2026) tests agents on something closer to real work: 186 feature requests in real repositories where a human once committed a vulnerable version. SWE-agent running Claude 4 Sonnet solved 57% of them, but only 11.8% securely, so 79.3% of its working solutions were insecure. The best setting in the paper's main results table, Gemini 3 Pro in SWE-agent, reached 12.9%.

An agent on real feature tasks: working vs secure

Share of 186 repository-level tasks, SWE-agent with Claude 4 Sonnet, SusVibes, ICML 2026

An agent on real feature tasks: working vs secure
LabelValue
Functionally correct57%
Correct and secure11.8%
Working solutions that were insecure79.3%
The third bar is a share of the working solutions, not of all tasks. The best setting in the paper's main results reached 12.9% secure.

Source: SusVibes, arXiv 2512.03262

Reviews of real pull requests point the same way. CodeRabbit, which sells AI code review, compared 320 AI-co-authored pull requests with 150 human ones and found 10.83 issues per PR against 6.45, with security issues "up to 2.74× higher".

The agents are part of the attack surface#

Through 2025 the conversation was about the apps agents write. By 2026 the agents themselves had become a risk: what they're allowed to do, which files they trust, and what they install.

Four ways the coding agent itself becomes the risk

Documented cases, 2025 to 2026

  1. Broad credentials, no human gate

    The agent has a key that reaches production and acts on it.

    • PocketOS

      An account-wide Railway token; production and backups gone in under 10 seconds.

    • DataTalks.Club, SaaStr

      terraform destroy on a stale state file; a production database deleted during a code freeze.

  2. Project files that run code

    Config the agent trusts becomes a way in.

    • Claude Code

      Repo hooks and MCP servers could run before the trust dialog (CVE-2025-59536).

    • Cursor, Copilot

      A prompt injection could rewrite the MCP config and run commands (CVE-2025-54135); Copilot command injection (CVE-2025-53773).

  3. Packages that don't exist

    The agent suggests a name; an attacker registers it.

    • 19.7% hallucinated

      Of 2.23M package references from 16 LLMs, in a USENIX Security study.

    • Slopsquatting

      A malicious npm package sits on a name agents suggest.

  4. Poisoned tools and supply chain

    Skills, MCP servers and packages turn the agent against its owner.

    • Malicious skills

      341 of 2,857 skills audited on ClawHub were malicious.

    • Hijacked CLIs

      Malicious Nx versions ran the victim's AI CLIs with permission-bypass flags to hunt for secrets.

None of these needs a bug in the app the agent wrote. They exploit what the agent is trusted to read, run and hold.

Sources: The New Stack; Check Point; Cato Networks; NVD; USENIX Security; Aikido; The Hacker News; StepSecurity

Destructive actions. Every deletion in the incident timeline involved an agent holding production credentials with no human gate. At PocketOS, a Cursor agent working on staging found an unrelated Railway token with account-wide authority and deleted the production volume, and the backups stored on the same volume, in under 10 seconds, The New Stack reports. At DataTalks.Club, Claude Code ran terraform destroy against a stale state file and took out the production database, network, cluster and automated snapshots; the owner, Alexey Grigorev, blames his own over-reliance on the agent. In both cases the backups sat inside the same blast radius.

Config files that execute. Check Point found that a cloned repository's .claude/settings.json hooks and .mcp.json servers could run commands before the user accepted Claude Code's trust dialog, and that a project setting could redirect API traffic and leak the user's API key (CVE-2025-59536 and CVE-2026-21852). Cato Networks showed that a prompt injection could silently rewrite Cursor's MCP config and run attacker commands before the user approved anything (fixed in Cursor 1.3). The NVD lists a command-injection flaw in GitHub Copilot and Visual Studio that let an attacker run code locally. Developers read these files as metadata, not code, which is why they rarely get reviewed.

Hallucinated packages. The USENIX Security 2025 study by Spracklen and colleagues generated 576,000 code samples with 16 models and checked every package they referenced.

How often LLMs reference packages that don't exist

Share of package references pointing at non-existent packages, 16 models, USENIX Security 2025

How often LLMs reference packages that don't exist
LabelValue
Commercial models≥5.2% (average, at least)
All 2.23M references19.7% (440,445 references)
Open-source models21.7% (average)
The highlighted bar covers 205,474 unique made-up package names, each one a name an attacker could register. Commercial models hallucinate far less, but not never.

Sources: Spracklen et al., USENIX Security 2025; SecurityWeek

Attackers have noticed. Aikido, which sells supply-chain security, points to unused-imports, a malicious npm package sitting on a name that gets suggested in place of the real eslint-plugin-unused-imports.

Poisoned tools. In February 2026, Koi audited 2,857 skills on OpenClaw's ClawHub marketplace and found 341 malicious, most of them installing a macOS stealer, The Hacker News reported. A compromised MCP server on npm, postmark-mcp, quietly BCC'd every outbound email to an outside domain, Snyk reported. Malicious versions of the Nx build tool prompted the victim's own Claude, Gemini and Amazon Q CLIs with flags like --dangerously-skip-permissions to scan the disk for secrets. And an unauthorized cline@2.3.0 was live on npm for about eight hours in February 2026, published with a stolen token that a researcher traced to a prompt-injection flaw in Cline's AI issue-triage workflow, SafeDep wrote.

Builder domains as phishing infrastructure#

The same things that make builders great for prototypes make them great for phishing: a page goes live in minutes, on a reputable domain, with a valid certificate and no identity check. Security vendors that sell email and web filtering have been documenting it since early 2025.

Proofpoint says it has seen tens of thousands of Lovable URLs detected as threats in email each month since February 2025. One campaign, using the Tycoon phishing kit, sent hundreds of thousands of messages and hit more than 5,000 organizations; others delivered crypto-wallet drainers and malware. Lovable says its safety program blocks about 1,000 malicious projects a day, per Dark Reading; that number is self-reported. Okta saw v0 used to build fake sign-in pages, with the impersonated logos hosted on Vercel too. And Kaseya's INKY team blocked 6,283+ phishing emails aimed at 2,030+ organizations from December 2025 to May 2026 from three separate campaigns that all used vercel.app, citing "instant deployment, no identity verification, valid TLS certificates" and the domain's reputation.

Fake CAPTCHA phishing pages, by host

Number of fake CAPTCHA pages Trend Micro found on each platform's shared domain, reported Sep 2025

Fake CAPTCHA phishing pages, by host
LabelValue
vercel.app52
lovable.app43
netlify.app3
A small sample, but an AI app builder's domain sits right next to Vercel's. Trend Micro first saw this abuse in January 2025; it rose sharply from February to April and spiked again in August.

Source: Trend Micro, Sep 2025

What platforms changed#

Platforms did respond, usually quickly and usually right after a public incident. The changes fall into two kinds: scanners that look at an app before or after it's published, and defaults that change what happens when nobody configures anything.

How builders and backends responded

Security changes announced by platforms, Apr 2025 to Aug 2026

  1. Apr 2025

    Lovable adds a security scan

    It checks that an RLS policy exists, not that it's correct.

    Source: Palmer

  2. 15 May 2025

    Replit: auth by default, an opt-in scan

    Replit Auth becomes the default; a Semgrep scan is an option before deploy; the agent is blocked from editing git history and key config files.

    Source: Replit

  3. 6 Jun 2025

    Netlify blocks deploys that contain secrets

    On Pro and Enterprise plans; 17% of scanned apps had deploys blocked for including secrets.

    Source: Netlify

  4. 21 Jul 2025

    Replit separates dev and production databases

    Days after its agent deleted SaaStr's production database.

    Source: Replit

  5. 6 Nov 2025

    Lovable projects private by default

    New projects' code and chat are visible to the workspace only. Who can open the published app is a separate setting.

    Source: Lovable docs

  6. 7 Jan 2026

    Supabase turns RLS on by default

    For tables created in the dashboard, with email alerts for any table with RLS off.

    Source: Supabase

  7. Apr 2026

    Lovable lets admins block insecure publishes

    On by default only for new Enterprise workspaces that Lovable creates.

    Source: Lovable docs

  8. 22 Apr 2026

    Lovable makes every public project private

    Historically public projects become private after the source-code exposure.

    Source: Lovable

  9. 28 Apr 2026

    Supabase stops auto-exposing new tables

    Opt-in now, the default for new projects from 30 May, applied to every existing project on 30 Oct 2026.

    Source: Supabase changelog

  10. 1 Jun 2026

    Lovable scans every publish

    A 10–15 second background scan; auto-fix is opt-in.

    Source: Lovable

  11. 30 Jul 2026

    Bolt audits apps on publish

    Bolt says a security agent scans every app before it publishes and applies fixes.

    Source: Bolt

  12. 17 Aug 2026

    Replit adds black-box pen tests

    Three levels of on-demand scans, up to white-box and black-box scanners together.

    Source: Replit

Most responses are scanners. The changes that remove whole classes of exposure, such as separate production data, private projects and unexposed tables, mostly shipped right after a public incident.

The Supabase change is the most consequential, because it moves the default for the backend most of these apps share. Supabase's changelog gives the reason in one line: "agents, CLI scripts, and AI platforms create tables too". A table an agent creates through a migration never touches the dashboard, so the January RLS-on default never applied to it. From 30 October 2026, on every project, a new table isn't reachable through the API until someone grants it.

Defaults versus scanners

What each kind of change does, and what's been published about its effect, as of Oct 2026

ChangeKindApplies without the user doing anything?What it can't catch
Separate dev and production databases (Replit)DefaultYes, for new apps (launched as a beta)A credential that reaches production anyway
Projects private by default (Lovable)DefaultYes; every old public project made privateWho can open the published app
New tables not exposed until granted (Supabase)DefaultYes, for every project from 30 Oct 2026A grant plus a wrong rule
RLS on for dashboard tables (Supabase)DefaultOnly for tables made in the dashboardTables created by agents and migrations
Scan on publish (Lovable, Bolt)ScannerYes, but blocking is opt-in or enterprise-onlyWhether an existing rule is correct
Secret scanning that blocks deploys (Netlify)ScannerOn paid plansData left open without any secret
No platform has published a before-and-after exposure rate. The only published firing rate for any guardrail is Netlify's 17%.

Sources: Replit; Lovable; Supabase; Palmer; Lovable docs; Netlify

The pattern is consistent. A default changes the outcome for everyone who never thinks about security, which is most people building this way. A scanner helps the people who read its findings and act on them, and Lovable's CISO said in February 2026 that acting on them is the user's call. Lovable's first scanner checked that a policy existed, so a wrong policy passed. Both Lovable and Supabase still describe application security as the customer's job: Supabase's own 2025 security retro says it "remains the responsibility of each customer".

Governments have started to say the same. Richard Horne, head of the UK's National Cyber Security Centre, told RSAC in March 2026 that AI coding tools "must be designed and trained from the outset" not to introduce vulnerabilities, and asked for secure-by-default output and secure hosting platforms, Infosecurity Magazine reported.

Different code deserves different levels of oversight.

— UK National Cyber Security Centre, The vibe coding spectrum, 18 Jun 2026

What this means if you build with AI#

None of this argues against building with AI. A personal habit tracker and a team's internal tool are worth having even if nobody reviews every line. But the data points to a short list of habits that cover most of the measured harm, and most of them take minutes.

  1. Assume everything in your page bundle is public. Anyone can open developer tools and read your JavaScript, including the database URL and key. That's fine for a Supabase anon key, as long as the access rules behind it are right: the rules are the security, not the key.
  2. Never put a service key or a secret API key in client code. Reeve found 52 apps shipping keys that can spend money or read the whole database. A Stripe secret, an OpenAI key or a service_role key belongs on a server. If your app has no server, it can't use that key safely.
  3. Test your access rules as a stranger. Open the app signed out and in a private window, then as a second account, and try to read and change someone else's data. A scanner that checks whether a rule exists won't catch a check written backwards. Ask your agent to write that test and run it before every share.
  4. Keep apps private until they need to be public. An internal tool for five colleagues doesn't need to be reachable by everyone on the internet. In one scan, 5,000+ apps had virtually no authentication, WIRED reported.
  5. Turn on the safer defaults now. On Supabase, opt in to unexposed tables now rather than waiting for 30 October, and make sure every table has RLS on, including the ones your agent created through migrations.
  6. Don't give agents production credentials. Give them a copy of the data, a key scoped to the task, and keep backups somewhere their credentials can't reach. Every deletion in the timeline, at PocketOS, DataTalks.Club and SaaStr, started with an agent holding production credentials.
  7. Treat agent config as code. Review .claude/, .mcp.json, .cursor/ and any skills or MCP servers before you run an agent in a repo you didn't write, and keep the agent updated: several of the CVEs above ran before anyone approved anything.
  8. Pin and check your dependencies. Before installing a package your agent suggests, confirm it exists, is the one you meant and has a history; one reference in five in the USENIX study pointed at nothing. Commit a lockfile so the next install gets the same thing.
  9. Read the diff where it touches auth, money or personal data. Even the best model in BaxBench writes a working backend that can be exploited about a third of the time. Vibe the layout; review the permissions.

Some of these habits are defaults on host0, the cloud we're building for apps like these: new apps are private by default behind a sign-in gate, on a domain (host0.app) separate from the platform. Shared data goes through a records API whose access rules are declared in an h0.json manifest and validated at deploy, so there's no database key in the page bundle and no RLS policy to forget.

Methodology#

This post is built on a data pack we compiled on 6 October 2026 from a deep-research run covering five angles: incidents, ecosystem scans of live apps, controlled code studies, abuse and agent risks, and platform responses. We then spot-checked about 20 of the numbers the post leans on hardest: we fetched each primary page live, pulled the exact sentence, and looked for an independent outlet that reported the same figure. Each claim in the pack carries a tier: verified against the primary, spot-checked across two or more outlets, or single-sourced. Single-sourced claims are attributed in the text ("X says"). Before publishing, we re-opened every single-sourced page we cite and dropped anything it no longer said.

We left out several widely repeated claims:

  • The Tea app breach as a vibe-coding failure. Tea blamed a legacy storage system; nothing links it to AI-written code.
  • "Wiz: 20% of vibe-coded apps are at risk." Wiz's one in five refers to organizations building on these platforms, not to apps.
  • "62% of AI code is vulnerable." We found no primary source for it.
  • "CodeRabbit: 75% more misconfigurations." CodeRabbit's 75% is about logic and correctness issues.
  • "11% of apps leak credentials." That count is mostly anon keys, which are public by design.
  • A 376% rise in AI credential theft, and related figures, found only in blog aggregators.
  • A paid press release claiming 16% of Supabase apps were writable by strangers, with no published method.
  • Details we couldn't re-confirm on the source page: a 992% rise in leaked Supabase secrets, Supabase's automatic revocation of leaked keys, the claim that postmark-mcp was the first malicious MCP server and had shipped 15 clean versions, a "free" label on Bolt's audit, a per-tool SusVibes score for Claude Code, and the claim that the unused-imports package steals credentials.

Limitations:

  • Almost every number comes from a vendor that sells the fix. Reeve, UpGuard, Escape, Wiz, RedAccess, Veracode, CodeRabbit, GitGuardian, Glow, Proofpoint, Trend Micro, Okta, Kaseya and Aikido all sell scanning, review or detection. The academic studies (BaxBench, SusVibes, the USENIX package study, Deng et al.) are the only ones with no product attached.
  • Denominators differ. The scans sample different populations (showcase apps, apps on default domains, domains showing Supabase) and count different things (apps, endpoints, databases, findings). Don't compare them on one axis.
  • Passive scans are lower bounds. They see only public, outside-testable apps. Apps behind their own backend are invisible to them, and they say nothing about private apps.
  • Exposed is not breached. No incident here has a confirmed exploitation count. WIRED couldn't confirm RedAccess's data was real; UpGuard doesn't claim its databases were AI-built.
  • Everything has a date. Supabase's change reaches existing projects on 30 October 2026, GitHub's 2026 Octoverse is due later in October, and the BaxBench leaderboard had no rows for the newest models when we read it.

Open questions#

The public data leaves gaps nobody has filled:

  1. Has anything improved? No one has repeated a scan with the same method, and no platform publishes a before-and-after exposure rate.
  2. How often can strangers write, not just read? The only figure for write exposure comes from a press release with no published method.
  3. Is the exposed data real? Nobody measures whether open rows belong to real people or are test data.
  4. How often do guardrails fire? Netlify's 17% is the only published rate for any platform's guardrail.
  5. Do defaults beat scanners? The evidence is circumstantial: defaults change outcomes for everyone, but no one has measured the difference.
  6. How broad are the keys agents hold? Every destructive incident involved an over-scoped credential, but there's no data on how common that is.
  7. How much phishing do builders take down? No builder publishes 2026 takedown numbers for its shared domain.

We plan to come back to several of these with data of our own.

ResearchSecurityVibe coding

Built something? Put it online in seconds

host0 is the cloud for small software: bring any coding agent, build the tool only you need — like this one — and say "deploy to host0". Live at a shareable URL, no servers to run.

More from the blog

All posts →