Security Issues
36 platform-specific vulnerabilities documented across 11 AI coding platforms. Each issue includes how it happens, its impact, and step-by-step remediation.
XSS in Lovable Apps
Lovable generates React components that frequently use dangerouslySetInnerHTML for rich text without sanitization. How to detect the pattern, install DOMPurify, and swap to react-markdown.
Exposed API Keys in Lovable Apps
The Supabase anon key is public by design; the service_role key is not. How service_role ends up in Lovable frontends, plus OpenAI/Stripe key leakage through direct API calls from the browser.
Missing RLS in Lovable Apps
The exact vulnerability that exposed 170+ Lovable apps: Supabase tables without Row Level Security queryable via the public anon key. Detection via anon-key probe, enablement via ALTER TABLE.
Broken Authentication in Lovable Apps
Lovable-generated auth flows check the logged-in state in React components but leave Supabase API endpoints unprotected. Attackers skip the UI and hit the API directly — here is how to close it.
XSS in Bolt.new Apps
Bolt.new generates React quickly but skips output sanitization for user-generated content. Common injection surfaces in Bolt output and per-component fixes using DOMPurify or react-markdown.
Exposed API Keys in Bolt.new Apps
Bolt.new frequently places API keys directly in generated files. How to find them (sk-, AKIA, AIzaSy patterns in JS bundles), rotate immediately, and migrate to server-side routes.
Missing RLS in Bolt.new Apps
Bolt's AI creates Supabase tables for the schema to work but rarely writes RLS policies. Detection SQL (pg_tables rowsecurity), enablement with ownership-check policies scoped to auth.uid().
Broken Authentication in Bolt.new Apps
Bolt.new generates professional-looking auth UIs that enforce access only at the render layer. The backend routes remain open. How to detect and fix the frontend-only auth pattern.
XSS in Windsurf-Generated Apps
Windsurf Cascade generates rich text rendering and URL parameter handling without sanitization. Specific Cascade output patterns to audit plus per-vulnerability remediation code.
Exposed API Keys in Windsurf Projects
Cascade generates code that often calls third-party APIs directly from the browser with embedded keys. Enable Zero Data Retention, scan bundles for sk-/AIza patterns, and migrate to server routes.
Insecure Headers in Windsurf Apps
Windsurf-generated apps rarely include security headers in the initial scaffolding. How to add CSP, HSTS, and X-Frame-Options to Windsurf-built apps depending on the host (Vercel, Netlify, Railway).
Broken Authentication in Windsurf Apps
Windsurf's Cascade generates polished role-based UI rendering that is bypassable by calling backend APIs directly. How to audit Cascade-generated auth and force authorization server-side.
XSS in Replit Apps
Replit-generated apps often render user input with template strings and innerHTML, bypassing framework auto-escaping. How to audit generated code for XSS patterns and apply layered fixes.
Exposed API Keys in Replit Projects
Public repls with .env files or hardcoded keys are indexable by automated scanners. Use Replit Secrets, make the repl private, rotate leaked keys, and purge from git/shell history.
Insecure Headers in Replit Apps
Replit's reverse proxy may strip or not add security headers. Configure them in your server framework (Express helmet, Flask-Talisman, etc.) and verify they reach the client via curl.
Broken Authentication in Replit Apps
Replit apps often use session storage patterns that break under the platform's shared execution model. Common gaps: session fixation, predictable session IDs, and insecure cookie flags.
Missing Firestore Security Rules
Firestore ships with test-mode rules (30-day world read/write). Thousands of Firebase apps ship to production with test-mode rules intact. Emulator testing and ownership-check rule templates.
Exposed Secrets in Firebase Projects
Firebase client config (apiKey, projectId) is public by design — Security Rules enforce access. Admin SDK credentials must never reach the browser. How to tell them apart and contain leaks.
Broken Authentication in Firebase Apps
Firebase auth breaks when server code trusts unverified client tokens, Security Rules skip auth.uid checks, or custom claims fall out of sync. Per-layer hardening with Admin SDK verifyIdToken.
XSS in Firebase-Powered Apps
Firebase Hosting serves static+JS apps that often fetch Firestore docs and render them without sanitization. How stored XSS flows from unsanitized document writes through to victim browsers.
Missing RLS in Supabase
Supabase's #1 misconfiguration. Why it is dangerous (anon key public by design), how to detect (pg_tables check + anon-key API probe), and policy templates for common access patterns.
Exposed API Keys in Supabase Projects
The service_role key bypasses all RLS. If it ever touches a client bundle, rotate it immediately — RLS alone cannot protect you. How to audit every place the service_role might leak.
Broken Authentication in Supabase Apps
Supabase Auth handles authentication robustly but developers conflate it with authorization. Being logged in does not mean a user should access everything — where the gap lives and how to close it.
XSS in V0-Generated Components
v0-generated components sometimes render props or API data through dangerouslySetInnerHTML or javascript: URLs. How to audit generated components pre-deploy and enforce sanitization.
Exposed API Keys in V0 Code
v0 generates client-side React components that often fetch directly with embedded keys. Rotate immediately, create Next.js Route Handlers for external API calls, and scope env vars properly.
Insecure Headers in V0-Built Apps
v0-generated apps deploy without security headers by default. Configure headers in next.config.js headers() function or vercel.json — per-header recommendations for v0 + Vercel stacks.
Exposed API Keys on Vercel
NEXT_PUBLIC_ env vars are inlined into the frontend bundle — one typo exposes a secret. Preview deployments may carry production env vars. How to audit and scope correctly.
Insecure Headers on Vercel
Vercel adds some security headers by default (HSTS) but misses others (CSP, X-Frame-Options). Configure in vercel.json headers array or Next.js headers() function with nonce-based CSP patterns.
CORS Misconfiguration on Vercel
Next.js API routes and Vercel functions commonly set wildcard CORS to silence dev errors. The wildcard persists to production. How to allowlist origins correctly for credentialed requests.
Exposed API Keys on Netlify
netlify.toml is committed to git — any secret there is public. How to scan build logs for leaks, migrate secrets to Netlify UI environment variables, and scope Functions env correctly.
Insecure Headers on Netlify
Netlify does not add security headers automatically. How to configure CSP, HSTS, X-Frame-Options via _headers file with per-directory overrides, plus nonce-based CSP for modern frameworks.
CORS Misconfiguration on Netlify
Netlify Functions and _headers config frequently use Access-Control-Allow-Origin: * to resolve dev errors — which allows any site to call your API. Per-origin allowlist patterns with credentials.
XSS in Cursor-Generated Code
Cursor's auto-completion may suggest dangerouslySetInnerHTML, raw innerHTML assignments, and unescaped template strings. How to audit Cursor-generated files and wire up a pre-commit XSS scan.
Exposed API Keys in Cursor Projects
Cursor workflows encourage pasting API keys for quick testing — and those keys often get committed to git and bundled into production. Bundle-scan audit steps and rotation-order guidance.
Exposed API Keys on Railway
Railway's shared variable groups can leak keys across services, and deploy logs retain env snapshots. Audit every service, restructure variable groups, and rotate anything that crossed boundaries.
Insecure Headers on Railway
Railway handles TLS but leaves security headers to the application. Configure headers in your framework (Express helmet, Next.js config, etc.) — Railway does not inject them at the edge.
Automated Security Scanning
Don't wait for attackers to find these issues. Run an automated scan to check your app for all documented vulnerabilities.
Get Starter Scan