Cyble Finds Live Secrets Exposed on 35 AI-Built Websites

· Original article ↗

Summary

Cyble scanned over 1.3 million newly registered domains and found private credentials exposed in public code on 35 of 22,306 identified AI-built sites, including OpenAI, Stripe, Slack, and database credentials.

Key points

  • Cyble identified 22,306 AI-built sites among more than 1.3 million newly registered domains scanned over a month.
  • Researchers found private credentials on 35 sites, excluding browser-safe keys and other strings that were not confirmed private secrets.
  • Exposures included OpenAI API keys, a Slack webhook shared across 13 domains, a Stripe secret key reused across four domains, Supabase service-role tokens, AWS keys, and GitHub or Google OAuth credentials.
  • The report says exposed credentials could enable account spending, Slack messages, payment-account access, database access, or cloud and source-control access; actual misuse was not reported.
  • The researchers found cloned-site fleets could repeat the same secret across multiple domains, and observed the pattern on both Bubble and Next.js sites.
  • Cyble recommends keeping secrets server-side, rotating keys exposed in client code, enforcing backend access controls, and monitoring public code and newly registered domains for exposed credentials.

Article Details

Publisher
Cyble
Report Period
One month; dates not disclosed.
Scope
Scan of newly registered domains to identify AI-built websites and private credentials exposed in public front-end code.
Sample Size
More than 1.3 million newly registered domains scanned; 22,306 AI-built sites identified.
Key Statistics
  • 35 of 22,306 AI-built sites had confirmed private-credential exposures.
  • Five sites exposed 16 distinct live OpenAI API keys.
  • A shared Slack webhook was found across a 13-domain fleet.
  • A single Stripe secret key was reused across four domains under two brands.
  • The reported exposure counts by credential type include 5 OpenAI API key sites, 13 shared Slack webhook sites, 6 Stripe secret key sites, 4 Supabase service-role JWT sites, 5 AWS access key sites, and 2 GitHub token or Google OAuth secret sites; a few sites appear in more than one row.
Recommendations
  • Keep secret keys in server-side functions or backend workflows, not client-accessible fields.
  • Use browser-safe key variants and enforce access with Supabase row-level security, Firebase rules, and API key restrictions.
  • Rotate keys that have been exposed in client-side code and treat them as compromised.
  • Inspect shipped page source for sensitive values before publishing.
  • Monitor public code and newly registered domains for organizational keys and webhooks; scope response to the full template fleet when a shared secret is found.

Vendors

Products

Related Articles