LIVE LOG · entries last verified against sources October 14, 2026 · site updated Oct 14, 2026, 1:42 AM ET
Research roundup / exposed secrets

Exposed keys in AI-built apps

What published research says about API keys and secrets leaking from vibe-coded and AI-assisted software. Every number links to the report it came from. We do not publish keys, partial keys, or any app the researchers did not name themselves.

1.5MAPI authentication tokens exposed by Moltbook's open Supabase databaseWiz, Feb 2026
400+exposed secrets across 5,600+ scanned vibe-coded appsEscape, Oct 2025
1,275,105AI-service secrets leaked on public GitHub in 2025, up 81%GitGuardian, Mar 2026
3.2%of Claude Code co-authored commits leaked a secret, vs a 1.5% baselineGitGuardian, Mar 2026

Who leaked what

These studies measure different things, so the numbers do not add up to one total. Moltbook is a single platform's database. Escape scanned live vibe-coded apps from the outside. GitGuardian counts secrets committed to public GitHub, from all developers, not only AI-built projects.

Service / key typeFigureContextSource
Moltbook agent API keysabout 1.5MMoltbook's own platform tokens, in an agents table readable with the public Supabase keyWiz
OpenAI API keys (Moltbook)not countedPlaintext OpenAI keys users had shared in agent DMs; Wiz reports 4,060 DM conversations exposedWiz
OpenAI API keys7Among Escape's 400+ secrets in vibe-coded appsEscape report
GitHub tokens6Among Escape's 400+; separately, Escape describes GitHub App secrets readable through missing RLSEscape report
Admin payment API keys2Escape does not name the payment providerEscape report
Supabase service keysnot countedEscape says service keys were 'often trivially retrievable from frontend bundles'Escape
DeepSeek API keys113,000New keys found on public GitHub in 2025GitGuardian
Supabase secrets (GitHub)+992% YoYGrowth in leaked Supabase secrets on public GitHubGitGuardian report
Fastly secrets (GitHub)+577% YoYGrowth in leaked Fastly secrets on public GitHubGitGuardian report
MCP config files24,008 (2,117 valid)Unique secrets in MCP configuration files on public GitHubGitGuardian

Related: RedAccess found about 40% of roughly 5,000 corporate vibe-coded apps exposed sensitive data, and Matt Palmer found API keys among the data readable in 170 of 1,645 Lovable projects (CVE-2025-48757). Neither breaks keys out by service, so they are not in the table.

How keys leak

Secrets in the frontend bundle. Anything shipped to the browser is public. Escape found service keys retrievable from frontend bundles and notes users "frequently treat client-exposed tokens as safe". Wiz found Moltbook's Supabase details hardcoded in a production JavaScript file.
A public key with no access rules behind it. Supabase's publishable/anon key and Firebase's API key are designed to be visible (Supabase docs, Firebase docs). They are safe only when Row Level Security or Security Rules restrict what they can do. With RLS off, Moltbook's public key gave read and write access to every table, including stored tokens. A secret or service_role key must never be in client code at all.
Committed .env and config files. GitGuardian counted 28.65 million new hardcoded secrets in public GitHub commits in 2025, and 24,008 in MCP config files alone, often because setup guides tell people to paste keys into config.
Keys stored in app data. Users pasted OpenAI keys into Moltbook DMs. Once the database was readable, those keys leaked too. Escape saw GitHub App secrets stored in tables that lacked RLS.
Leaks that are never revoked. GitGuardian found over 64% of secrets confirmed valid in 2022 were still valid in January 2026.

How to check your own app and repo

  1. Scan your repo and its history. Run gitleaks (gitleaks git .) or TruffleHog (trufflehog git file://. --only-verified). Deleting a file does not remove it from git history.
  2. Search your live bundle. Open your deployed site, then DevTools → Sources (or curl the JS files) and search for sk-, sk_live, service_role, sb_secret, ghp_, AKIA and secret. Only publishable keys belong there.
  3. Test the public key the way an outsider would. Logged out, call your Supabase REST endpoint with just the anon/publishable key (/rest/v1/your_table?select=*). If it returns other users' rows or tokens, turn on RLS and write policies before anything else.
  4. Move privileged calls server-side. OpenAI, Stripe secret, GitHub and Supabase secret/service keys go in server functions or edge functions, read from environment variables, never in VITE_/NEXT_PUBLIC_ variables.
  5. Rotate anything that was exposed. Removing a key from code does not make it safe. Revoke it at the provider, issue a new one, and check the provider's usage logs.
  6. Block the next one. Turn on GitHub push protection and add a pre-commit secret scan.
If you would rather have this checked for you, LockedVibe's free Lockdown Pack covers exposed keys, RLS and auth, and its security scan looks at your live app and repo.

Sources

Figures checked against each source on October 13, 2026. Spotted an error? Tell us and we will fix it.