Skip to main content
✨ Run your entire business in one platform — CRM, HR, Accounting, Projects & more. Start Free Trial →

I scanned 100 AI-generated apps for security vulnerabilities. Here's what I found.

I scanned 100 AI-generated apps for security vulnerabilities. Here's what I found.
By: Dev.to Top Posted On: March 24, 2026 View: 0
I've been building a security scanner for the past few months, specifically designed for apps built with AI coding tools like Cursor, Lovable, Bolt.new, and v0. To validate whether the tool was actually useful, I scanned 100 real GitHub repos - all built primarily with AI assistance. The results were worse than I expected. The numbers 67 out of 100 repos had at least one critical vulnerability 45% had hardcoded secrets (API keys, JWT secrets, database URLs in source code) 38% had missing authentication on sensitive API routes 31% had SQL injection or XSS vulnerabilities 89% of Lovable apps were missing Supabase Row Level Security policies This isn't a theoretical exercise. These are real apps, some already deployed with real users. The most common vulnerabilities by AI tool Cursor The biggest issue with Cursor-generated code is IDOR (Insecure Direct Object References). Cursor loves to use sequential IDs and often skips ownership checks: javascript // Cursor generates this — anyone can access any user's data app.get('/api/users/:id', async (req, res) => const user = await db.users.findById(req.params.id); res.json(user); ); It should verify the requesting user owns that resource. 43% of Cursor repos had this pattern. Lovable Lovable builds beautiful Supabase apps, but it almost never enables Row Level Security. This means any authenticated user can read/write any row in any table: -- This is what Lovable usually generates: nothing -- What it should generate: ALTER TABLE todos ENABLE ROW LEVEL SECURITY; CREATE POLICY "Users can only see their own todos" ON todos FOR SELECT USING (auth.uid() = user_id); 89% of Lovable repos were missing RLS on at least one table with user data. Bolt.new Bolt.new's biggest weakness is unauthenticated API routes. It generates Express/Next.js API handlers that accept POST, PUT, and DELETE requests with zero auth checks: // No auth check — anyone on the internet can delete data export async function DELETE(req) const id = await req.json(); await db.delete(items).where(eq(items.id, id)); return Response.json( success: true ); 52% of Bolt.new repos had at least one unprotected mutating endpoint. Why AI tools create these vulnerabilities It's not that the AI models are bad at coding. The problem is more specific: No threat model. AI generates code that satisfies the functional requirement ("build a todo app") but doesn't consider adversarial use ("what if someone guesses another user's ID?") Training data bias. Most code on GitHub — which these models trained on — is tutorial code, demos, and prototypes. Production security patterns are underrepresented. Context window limits. Security often requires understanding the full system (auth flow + database policies + API routes). AI generates one file at a time and loses cross-file context. No feedback loop. When AI writes a working but insecure endpoint, nobody tells the model it was wrong. The code works, tests pass, users can log in — the vulnerability is invisible until exploited. Stanford and UIUC researchers found that developers using AI assistants produced significantly less secure code than those coding manually, yet were more confident their code was secure. That confidence gap is dangerous. What you can do about it 1. Never trust AI with auth logic Always manually review authentication and authorization code. This is the highest-risk area. 2. Check for hardcoded secrets Run a quick grep: grep -rn "sk_live\|sk_test\|api_key\|password\|secret" --include="*.ts" --include="*.js" . 3. Enable RLS if using Supabase Every table with user data needs Row Level Security. No exceptions. 4. Add auth middleware to all mutating routes Every POST, PUT, DELETE, and PATCH endpoint needs authentication. Create a middleware function and apply it consistently. 5. Run an automated scanner This is why I built ShipSafe. Paste a GitHub URL, get a report in 2 minutes with plain-English explanations and specific fixes. Free scan covers 30+ checks, paid plans add AI-powered deep analysis. The bottom line AI coding tools are incredible for speed. I use Cursor every day. But they have a blind spot for security, and that blind spot is predictable and fixable. The vulnerabilities AI creates aren't exotic zero-days. They're the same OWASP Top 10 issues that have existed for 20 years — just generated faster and at scale. Scan your code. Fix what matters. Ship with confidence. If you're building with AI tools, I'd love to hear what security issues you've encountered. Drop a comment — I'm curious whether your experience matches what we found.
Share:

Tags:
#0 

Read this on Dev.to Top Header Banner

Want to run a more efficient business?

Mewayz gives you CRM, HR, Accounting, Projects & eCommerce — all in one workspace. 14-day free trial, no credit card needed.

Try Mewayz Free →

Comments

Power your business with Mewayz ERP

All-in-one platform: CRM, HR, Accounting, Project Management, eCommerce & more. 14-day free trial.

Start Your Free Trial →

No credit card required · Cancel anytime · 131+ modules

Contact Us
Follow Us
Site Map
Get Site Map
About

Mewayz News brings you the latest breaking news, in-depth analysis, and trending stories from around the world. Covering politics, technology, business, sports, entertainment, and more — updated every hour, 24/7.

Mewayz Network

Mewayz App Stream Watch TV Music Games Tools Calculators Dictionary Books Quotes Recipes Photos Fonts Icons Study Papers Resume Templates Compare Reviews Weather Trading Docs Draw Paste Sign eBooks AI Learn Currency Convert Translate Search QR Code Timer Typing Colors Fitness Invoice Directory Social Seemless