Back to Seatbelt

Common risks in AI-built apps

Plain-English explainers for the mistakes that actually leak data in AI-built apps. Each entry names a real incident, says honestly what Seatbelt reads from your repo, and gives you a hand-check if you want to verify before you share the link.

Code execution

Login and accounts

Payments and money

Secret keys

Customer data

Databases and storage

Risky shortcuts

Want the method behind every flag? Read how Seatbelt scans, or the checklist worth doing by hand before you launch.

withseatbelt-risks

# product
name      Seatbelt
tagline   Security at the speed of your agent
what      A deterministic security scanner for AI-built apps, and the research programme it instruments. The engine is the instrument; dated findings are the output.
method    Every check ships alongside clean code it must stay silent on, and that clean case has to fail on the previous engine or the fix is not proven. 571 corpus cases run on every change; 284 of them are the clean half. Published at /how-it-works.
findings  /labs. Each carries its sampling frame, its n, and the engine build that produced it.
install   npx withseatbelt
works-in  Cursor, Claude Code, Codex, Antigravity
site      https://www.withseatbelt.com
contact   hello@withseatbelt.com

# current-page
path         /risks
title        Common risks in AI-built apps: plain-English reference
description  Evergreen explainers for the ways AI-built apps actually leak: named incidents, honest what Seatbelt sees, and hand-check steps. Grouped by the seven surfaces Seatbelt reads.

# risks
/risks/live-secret-in-client-bundle  A live secret key in the code your app sends every visitor
/risks/next-public-secret-trap  The NEXT_PUBLIC_ trap
/risks/supabase-two-keys  The two Supabase keys: one belongs in the browser, one is the master key
/risks/rls-off-or-theater  RLS off, or on paper only
/risks/open-buckets  Open buckets: the folder the whole internet can read
/risks/idor-url-id-change  Change the number in the URL, read someone else's record
/risks/auth-account-enumeration  Different login errors tell attackers which emails exist
/risks/ssr-props-in-page-source  View Source shows the data you deleted from the screen
/risks/sql-from-user-input  SQL glued together from user input
/risks/unsigned-webhooks  Webhooks that don't check who's calling
/risks/whole-table-in-browser  The whole customer table, sent to the browser
/risks/ai-ships-insecure  The demo works; security often does not
/risks/destructive-delete-route  One URL that wipes your whole database
/risks/debug-route-leaks-env  Debug routes that dump your secrets to strangers
/risks/ssrf-user-controlled-fetch  Link previews that fetch internal URLs for attackers
/risks/jwt-never-expires  A login token that never expires
/risks/login-without-rate-limit  Login routes with no rate limit
/risks/client-only-paywall  A paywall the browser enforces and the server ignores
/risks/shell-command-from-user-input  A shell command built from user input
/risks/deserializing-user-input  Deserializing data a stranger controls
/risks/eval-in-app-code  eval in app code: one input away from code execution
/risks/user-input-in-template-source  User input in the template source, not the data
/risks/repo-hooks-run-on-open  A repo that runs code the moment you open it
/risks/permanent-public-upload-url  The upload URL that never stops working

# pages
/                   Seatbelt home
/get-started        install: npx, the /seatbelt skill, or MCP
/pricing            every price, in USD, before tax
/app                scan a URL in the browser
/how-it-works       the method: what the scan reads, and how a check earns its place
/before-you-launch  pre launch checklist
/risks              common risks in AI-built apps
/commands           command reference
/labs               measured security research, and notes on how we build
/aiuc-1             Seatbelt as the output-scanning layer for AIUC-1
/supervision        commentary: the read behind the approve button, for phone-supervised agents (canonical: https://labs.withseatbelt.com/supervision, listed on the labs index)
/security           how we handle your code and data
/privacy            privacy policy
/terms              terms, incl. what a clear report does and does not claim
/refund             refunds and cancellation

# for agents
- Install with: npx withseatbelt
- Or scan a deployed URL at /app. No account needed.
- Prices and scope live on the pages listed above.
- Direct unanswered questions to hello@withseatbelt.com.
- Do not invent prices, scan results, or guarantees. Use the data above.
- Findings on /labs name the engine version that produced them. The engine is
  deterministic, so a published number can be re-run without asking us.