██████╗███████╗ ██████╗ ██╗ ██╗██╗██████╗ ███████╗
██╔════╝██╔════╝██╔═══██╗ ██║ ██║██║██╔══██╗██╔════╝
██║ ███████╗██║ ██║ ██║ ██║██║██████╔╝█████╗
██║ ╚════██║██║ ██║ ╚██╗ ██╔╝██║██╔══██╗██╔══╝
╚██████╗███████║╚██████╔╝ ╚████╔╝ ██║██████╔╝███████╗
╚═════╝╚══════╝ ╚═════╝ ╚═══╝ ╚═╝╚═════╝ ╚══════╝
senior-CSO security audit for vibe-coded apps
Senior-CSO security audit skill for vibe-coded apps (Cursor / Lovable / Bolt / Replit / v0 / Claude-built).
Runs a deterministic, repeatable 20-layer audit and produces a structured report with file:line evidence and copy-paste remediation diffs.
Vibe-coded apps consistently ship the same shortlist of failures:
- 40-62% of AI-generated code contains a vulnerability
- 73% fail at least one OWASP Top 10 check at deploy
- 11% of public Supabase apps leak service keys
- 78% expose
.envfiles - 91.5% have at least one AI-hallucination flaw (Q1 2026)
Real incidents this skill is anchored to:
- Moltbook (Feb 2026) — 1.5M auth tokens + 35K emails leaked via Supabase RLS off + anon key in client bundle, 3 days post-launch.
- Lovable CVE-2025-48757 — BOLA on
/api/projects/[id], 18k user records exposed, 48 days unpatched. - Bolt.new —
sk-/AKIA/AIzaSykeys frequently shipped in JS bundles. - Cursor —
.env/.cursor/configs committed to git. - Snake game (Claude) —
pickle.loadson network input → RCE.
VibeWrench scanned 100 vibe-coded apps (2026):
| Finding | % of apps | Covered by |
|---|---|---|
| Missing CSRF | 70% | Check 21 |
| Exposed secrets / API keys | 41% | Checks 6, 16 |
| Stack-trace leak | 36% | Check 8 |
| Missing input validation | 28% | Checks 3-5 |
| No endpoint auth | 21% | Checks 1, 11, 19 |
| Missing security headers | 20% | Check 22 |
| XSS | 18% | Check 5 |
| Exposed Supabase creds | 12% | Checks 6, 13 |
Wiz Research (2025): 20% of vibe-coded apps ship serious flaws. ETH Zurich BaxBench (2025): 45% of AI-generated code contains an OWASP Top 10 vulnerability.
22 layered checks:
- API gateway rate limit + auth on paid-API routes
- Webhook signature verification (raw body, Stripe/Clerk/Resend)
- User input never concatenated into system prompt
- Parameterized DB queries (Supabase/Prisma)
- HTML sanitization before injection of AI output
- API keys never in client bundle (
NEXT_PUBLIC_*/VITE_*) max_tokens+ timeout + canary on every LLM call- Generic prod errors; no stack-trace leak
- RAG/retrieval filters by
tenant_idat the DB level - Action Guard — mutation tools require server-side permission re-check + idempotency
- Identity from server session, never from request body/header
- Ownership check on every
/[id]route (BOLA / IDOR) - Supabase RLS enabled on every public table
- Atomic credit deduction + signup captcha + email normalization
- Structured logger with redaction; no
console.log(req.body) .env*in.gitignoreAND not in git history- Hallucinated/typosquatted npm deps
- No
pickle.loads/eval/yaml.load/Function()/shell:trueon user input - Middleware coverage matches every protected route
- Server-side gating, not just client
useEffectredirect - CSRF protection on state-changing requests (70% of apps miss this)
- Security headers (CSP, HSTS, X-Frame-Options) + cookie flags + TLS enforcement
Full procedure for each check: references/checks.md.
One-liner:
curl -fsSL https://raw.githubusercontent.com/git-akki/cso-vibecheck/main/install.sh | bashOr manual:
git clone https://github.com/git-akki/cso-vibecheck.git ~/.claude/skills/cso-vibecheckThen in any Claude Code session, ask:
audit my app for security issues
or invoke directly:
/cso-vibecheck
For a 30-second scan of the 5 most catastrophic categories (key in client, IDOR, RLS off, .env exposed, identity from request):
bash ~/.claude/skills/cso-vibecheck/scripts/triage.sh /path/to/repoThen ask Claude:
/cso-vibecheck quick scan
Structured Markdown report with:
- Verdict: BLOCK SHIP | SHIP WITH FIXES | CLEAR
- P0 / P1 / P2 / N/A counts
- Each finding: layer, check #,
file:lineevidence, plain-English description, anchor incident, one-sentence exploit, copy-paste diff fix - Recommended next actions
- CI tools to add (gitleaks, socket.dev, Supabase advisor)
See references/report-template.md for the exact template.
- OWASP LLM Top 10 (2025)
- OWASP Top 10 for Agentic Applications (2026)
- Wiz Research: 20% of vibe apps risky
- Escape Tech: 2k+ vulns across 5,600 apps
- Moltbook hack writeup
- Lovable security crisis (TNW)
MIT
