One small change to a web address. That was all it took for an app built with artificial intelligence (AI) tools to hand over 82,000 people’s names, addresses, phone numbers, emails and sexual orientations, according to a developer who posted about it on Reddit in September 2025.1 It was the fourth app they had found with the same flaw. Nobody had to break in. The app never checked whether the record being asked for belonged to the person asking.
It is not rare. When a researcher checked 1,645 projects in one AI app builder’s public showcase in 2025, 170 of them, about one in ten, let outsiders read data such as names and payment details.
You can find out in about ten minutes whether your app is one of them. The test is below, along with how much security an app needs at each stage, from the first demo to the buyer who asks for a System and Organization Controls 2 (SOC 2) report, and what can safely wait.
The security half of a minimum viable product
One test founders on Reddit offer for a minimum viable product (MVP): would someone pay for it right now? Security sits in a separate conversation, under looser names like “the basics.”
It has a published name. The Minimum Viable Secure Product (MVSP) is “a minimum security baseline for enterprise-ready products and services,” and its site says smaller companies “not yet mature enough to invest in large compliance efforts such as SOC 2” can use it as the baseline for their MVP.
So an MVP ships with a small security floor, and you raise it when something outside the company changes.
Four stages, and what moves you up
This ladder is ours, built on two public standards. The Center for Internet Security (CIS) says every company should start with its Implementation Group 1 (IG1), 56 safeguards it calls “essential cyber hygiene.” IG2 and IG3 add more for sensitive or regulated data. The National Institute of Standards and Technology (NIST) encourages moving up the tiers of its Cybersecurity Framework 2.0 “when risks or mandates are greater.”
1. The demo
Keep the code private, and keep secret keys and real customer data out of it.
Show the steps for the demo
- Set the code repository to private. On GitHub: Settings, then General, then Change visibility at the bottom of the page.
- Put secret keys in your host’s environment settings, not in the code, and add
.envto.gitignoreso a key file is never committed. - Fill the app with made-up test data. Do not load a real customer list to make the demo look full.
- Turn on multi-factor sign-in for your GitHub, hosting and database accounts. It takes five minutes and protects everything below.
Move up when anyone outside your team will enter real information.
2. First real users
In line with CIS IG1 and MVSP:
- Multi-factor sign-in on every account that can reach production
- HTTPS, a firewall and regular patches
- Secret keys on the server, never in code the browser downloads
- Every request checked for ownership of the record, not just sign-in
- Nightly backups kept off the server, with one restore tested
- Logs copied off the server, and downtime alerts that reach a person
Show the steps for first real users
- Sign-in. Turn on multi-factor sign-in for every account that can reach production: code, hosting, database, domain registrar and email.
- HTTPS and patches. Open your site at
http://and check that it jumps tohttps://. On your own server, open only the ports you use (web and SSH) and turn on automatic security updates. - Keys. Move every secret key into server-side code or your host’s environment settings, then run test 4 below to confirm none are left in the browser.
- Ownership. Turn on row-level security for every table, with a rule that a person can
read only rows carrying their own user ID. In Supabase that rule compares the row’s user
column to
auth.uid(). Then run tests 1 and 3 below. - Backups. Turn on your database host’s daily backups, or schedule a nightly export, and keep a copy outside the server. Restore one copy into a test project and open it.
- Logs and alerts. Send your logs to a service off the server, and set an uptime check that emails or texts a named person when the site goes down.
Move up when you start charging or a second person needs access to production.
3. The first paying business customer
Production moves to its own server, which your test setup cannot reach, and nobody signs in to it by hand as routine. Someone watches the security logs. Set an uptime target of 99.5% to 99.9%, what Amazon and Google commit to for one server.
Show the steps for the first paying business customer
- Create a separate production project or server, with its own keys and its own data. Your test setup should not be able to reach it.
- Deploy only through your pipeline, such as GitHub Actions. Keep one emergency admin account with multi-factor sign-in, and stop signing in to production by hand.
- Give every person their own account. No shared logins, and remove access the day someone leaves.
- Name the person who reads the security alerts, and set alerts for a new admin account and for a spike in failed sign-ins.
- Write down your uptime target and measure it with the uptime check from stage two.
- Book a human review before you take payments. See “When to pay a human” below.
Move up when a buyer asks for SOC 2 or sends a security questionnaire, when a contract promises more uptime than one server can back or when you hold health, financial or children’s data.
4. The buyer who asks for SOC 2
Now add written policies, access reviews, an incident plan and yearly disaster-recovery and penetration tests. A SOC 2 Type 1 report checks your controls on one day; Type 2, over three to twelve months. Vanta, which sells SOC 2 software, puts the first year at $20,000 to $80,000 or more and says “the sales pipeline is often the trigger,” so start when a buyer asks. Until the report exists, MVSP gives you an honest answer to a security questionnaire.
Show the steps for the buyer who asks for SOC 2
- Fill out the MVSP checklist at mvsp.dev and use it to answer security questionnaires today.
- Write the core policies: who gets access, how changes reach production, how you answer an incident, how you choose vendors and how you back up. A compliance platform gives you templates.
- Review who has access every quarter, and keep a record that you did.
- Write an incident plan, then rehearse it once with your team.
- Run a disaster-recovery test and a penetration test once a year, and keep the reports.
- Get the Type 1 report first, then start the three-to-twelve-month window for Type 2.
Five tests you can run today
- Two accounts. Sign up twice. As the second account, open a page that belongs to the first. If it loads, your app checks who you are but not what you own.
- The network tab. In your browser’s developer tools, open Network and use the app. Other people’s records, or fields the screen never shows, are a leak.
- No sign-in. Copy an address your app calls from that tab and open it in a private window. If data comes back, anyone can get it the same way.
- Search for keys. Search every file the site loads for
sk_,sk-,SECRETandTOKEN. Any secret key you find is public, so replace it. - Rotate what you pasted. Search your AI chat history for “key,” “password” and “secret,” then replace every credential you find and switch the old ones off.
What goes wrong
Those 170 projects were in Lovable’s showcase, and a researcher at rival Replit found them in March 2025.2 Lovable disputes the resulting CVE-2025-48757,3 saying each customer is responsible for their own app’s data. In February 2026 The Register reported4 a researcher’s claim that one showcased Lovable app exposed 18,697 user records because its access check ran backwards. Lovable said it did not host the database, and that its pre-publish scan leaves fixes “at the discretion of the user.”
Either way, the platform gives you a login and a scan; deciding who sees which row stays with you. Tests 1 and 3 check that part.
When to pay a human
An AI asked to review its own code approved its own fixes in a loop, one commenter found. Pay for a human review before you take payments or sensitive data, or when a test turns up something you cannot explain. Ask the reviewer to reach another user’s data, make themselves an admin and use a paid feature without paying, then fix anything that crosses between users first. Prices quoted on Reddit ran about $300 to $700, a small sample.
If you want the floor designed for you, our Infrastructure Blueprint gives your engineers a security posture and a build plan to carry out.
Where to start
Run the two-accounts test this week. If the second account can see anything that belongs to the first, fix that, then work through the stage two list.
Footnotes
-
Reddit, r/vibecoding, post on security in vibe-coded apps, September 2025. https://www.reddit.com/r/vibecoding/comments/1np73ws/security_in_vibe_coded_web_apps_is_a_disaster/ ↩
-
Matt Palmer, statement on CVE-2025-48757, May 2025. https://mattpalmer.io/posts/2025/05/statement-on-CVE-2025-48757/ ↩
-
CVE record CVE-2025-48757. https://www.cve.org/CVERecord?id=CVE-2025-48757 ↩
-
The Register, February 27, 2026. https://www.theregister.com/2026/02/27/lovable_app_vulnerabilities/ ↩