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.
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 type | Figure | Context | Source |
|---|---|---|---|
| Moltbook agent API keys | about 1.5M | Moltbook's own platform tokens, in an agents table readable with the public Supabase key | Wiz |
| OpenAI API keys (Moltbook) | not counted | Plaintext OpenAI keys users had shared in agent DMs; Wiz reports 4,060 DM conversations exposed | Wiz |
| OpenAI API keys | 7 | Among Escape's 400+ secrets in vibe-coded apps | Escape report |
| GitHub tokens | 6 | Among Escape's 400+; separately, Escape describes GitHub App secrets readable through missing RLS | Escape report |
| Admin payment API keys | 2 | Escape does not name the payment provider | Escape report |
| Supabase service keys | not counted | Escape says service keys were 'often trivially retrievable from frontend bundles' | Escape |
| DeepSeek API keys | 113,000 | New keys found on public GitHub in 2025 | GitGuardian |
| Supabase secrets (GitHub) | +992% YoY | Growth in leaked Supabase secrets on public GitHub | GitGuardian report |
| Fastly secrets (GitHub) | +577% YoY | Growth in leaked Fastly secrets on public GitHub | GitGuardian report |
| MCP config files | 24,008 (2,117 valid) | Unique secrets in MCP configuration files on public GitHub | GitGuardian |
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
- 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. - Search your live bundle. Open your deployed site, then DevTools → Sources (or
curlthe JS files) and search forsk-,sk_live,service_role,sb_secret,ghp_,AKIAandsecret. Only publishable keys belong there. - 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. - 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. - 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.
- 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
- Wiz Research: Hacking Moltbook (Feb 2, 2026)
- Escape: Methodology, 2k+ vulnerabilities in vibe-coded apps (Oct 29, 2025)
- Escape: The State of Security of Vibe Coded Apps (report)
- GitGuardian: The State of Secrets Sprawl 2026, key findings (Mar 17, 2026)
- GitGuardian: The State of Secrets Sprawl 2026, full report
- Matt Palmer: CVE-2025-48757 · VibeIncidents: RedAccess scan
- Supabase: API keys · Firebase: API keys · gitleaks · TruffleHog · GitHub push protection