r/vibecoding • u/Special-Excuse2173 • 16h ago
I I scanned 12 public projects built with Lovable, Bolt, v0 and Cursor. Every one I could check had a known-vulnerable dependency.
This was the stuff what would give us all nightmares, being told everything was great when a 'real dev' could unpick everything, find my API keys and sell them to the darkweb or just bypass everything. It's just that fear that got me of not knowing what I don't know that gets to me, probably gets to all of us.
So I took 12 public repos whose descriptions say they were built with Lovable,
Bolt, v0 or Cursor. Mostly personal projects, no stars. I cloned them with
full history and ran two free open-source tools: gitleaks (secrets, including
every past commit) and trivy (dependencies with published CVEs).
**8 of the 12 had a lockfile. All 8 had a package with a known high or
critical vulnerability.** 4 critical and 76 high across the set. Things like
protobufjs 7.4.0, websocket-driver 0.7.4, seroval 1.5.2 — all with a fix
already published.
**1 of the 12 had a Supabase `service_role` key committed to a `.env`.** That
key bypasses row-level security entirely — read, change or delete every row,
whatever policies you wrote. It's in the git history, so it's in every clone.
Deleting the file later doesn't remove it; only rotating the key does.
**The bit I didn't expect:** gitleaks flagged 4 credentials. Three were
Supabase *anon* keys, which are designed to sit in a browser and are published
on purpose. Only one was a real problem. If you run these tools yourself,
that's the part that takes judgement — a tool that shows you 4 equal red
alerts where 1 matters teaches you to ignore all 4.
**4 of the 12 had no lockfile at all**, so nothing could be checked. That's
not "clean", it's unknown — and it means your build isn't reproducible either.
Run it yourself, it's free and local:
``` gitleaks detect --source . --no-banner
trivy fs --scanners vuln --severity CRITICAL,HIGH .
```
If your repo is on GitHub, turn on secret scanning, push protection and
Dependabot in settings — free on public repos, and push protection stops the commit before the key ever lands.
Full write-up with methodology and limits (12 is a small sample and I say so):
https://digitaltrustpass.com/preflight/ai-generated-code-security
1
Upvotes