AI Coding Tools Can Reproduce Insecure Defaults in SaaS Applications

Summary
Following Vercel and Lovable security incidents, OpenSourceMalware describes recurring risks in AI-generated apps, including exposed secrets, weak authorization, permissive storage, unverified webhooks, and unvetted dependencies.
Key points
- The article reports that Vercel was compromised after an employee granted a third-party AI platform broad Google Workspace access; the pivot into Vercel’s infrastructure was not explained.
- Lovable said a backend change reintroduced access to chats and source code on public projects. It fixed the issue, made historically public projects private by default, and was still reviewing access logs.
- The article says Lovable’s bug involved missing project-ownership checks in authenticated endpoints; private projects and Lovable Cloud were not affected.
- Common AI-generated application risks include secrets in client code or repositories, missing tenant-level authorization, permissive database policies, and public storage buckets.
- The analysis also identifies webhook handlers without signature checks, hardcoded fallback secrets, and outdated or hallucinated dependency choices.
- The authors recommend treating agent-suggested dependencies as untrusted, checking package legitimacy and maintenance, and rotating credentials that may have been exposed.
Article Details
- Topic
- Security anti-patterns in AI coding platforms, including the Vercel compromise, Lovable data exposure, and insecure defaults in generated SaaS applications.
Malware
Vendors
Context.aiOn April 20, Vercel was compromised. It turns out a Vercel employee used the AI platform Context.ai, and an Context employee was infected with the Lumma stealer malware. The Vercel employee gave Context "Allow All"LovableLast week was tough for vibe coders and people who use tools like Lovable and Vercel to build and deploy applications.VercelLast week was tough for vibe coders and people who use tools like Lovable and Vercel to build and deploy applications.
Products
Anthropictime an agent wires a service that has both a public and a privileged key (Stripe pk_ vs sk_, OpenAI / Anthropic keys, SendGrid full-access vs restricted, Twilio account SID + auth token).Auth.jsgraph: Next.js or React+Vite, Tailwind, shadcn/ui, a Postgres BaaS (Supabase or Neon), Clerk or Auth.js, Stripe, Resend or SendGrid for email, Vercel or Netlify for hosting.Base44for simple work and FastAPI when async or typing comes up. None of the no-code builders (Lovable / Bolt / Base44 / v0) generate Python services as a primary deliverable: Lovable explicitly tells users to export andClaude CodeClaude Code / Claude chatClerksame dependency graph: Next.js or React+Vite, Tailwind, shadcn/ui, a Postgres BaaS (Supabase or Neon), Clerk or Auth.js, Stripe, Resend or SendGrid for email, Vercel or Netlify for hosting.Codexour team has noticed a theme across many of them: Regardless of whether you are using Lovable, Claude, Codex, Curser, or something else, part of the value these platforms provide is their experience building SaaSContext.aiOn April 20, Vercel was compromised. It turns out a Vercel employee used the AI platform Context.ai, and an Context employee was infected with the Lumma stealer malware. The Vercel employee gave Context "Allow All"CursorCursor (IDE)FirebaseRoot cause. A Broken Object Level Authorization (BOLA) bug: /projects/{id}/* endpoints validated Firebase auth but did not verify project ownership, so any logged-in user could access other tenants’ project data by ID.GitHubthe OSM team wrote and published a Vercel security incident response playbook, which you can find on GitHub.GitLabtools will fall back to creating .env files in the local source repo, which then get pushed to GitHub, GitLab, etc. Even worse, sometimes those .env files get added to the web content and can be found via scanningHackerOneLovable has a bug bounty program with HackerOne and researchers started reporting the regression on Feb 22, 2026, but reports were closed because triage docs incorrectly said public chat visibility was intendedLovableLast week was tough for vibe coders and people who use tools like Lovable and Vercel to build and deploy applications.Neonthe same dependency graph: Next.js or React+Vite, Tailwind, shadcn/ui, a Postgres BaaS (Supabase or Neon), Clerk or Auth.js, Stripe, Resend or SendGrid for email, Vercel or Netlify for hosting.Next.jsask any of these tools to "build me a SaaS," the answer collapses to roughly the same dependency graph: Next.js or React+Vite, Tailwind, shadcn/ui, a Postgres BaaS (Supabase or Neon), Clerk or Auth.js, Stripe, ResendOpenAISimilar to Cursor; OpenAI training leans Python harder: FastAPI is reflexiveReactthese tools to "build me a SaaS," the answer collapses to roughly the same dependency graph: Next.js or React+Vite, Tailwind, shadcn/ui, a Postgres BaaS (Supabase or Neon), Clerk or Auth.js, Stripe, Resend orReplitReplit AgentResendNext.js or React+Vite, Tailwind, shadcn/ui, a Postgres BaaS (Supabase or Neon), Clerk or Auth.js, Stripe, Resend or SendGrid for email, Vercel or Netlify for hosting.SendGridReact+Vite, Tailwind, shadcn/ui, a Postgres BaaS (Supabase or Neon), Clerk or Auth.js, Stripe, Resend or SendGrid for email, Vercel or Netlify for hosting.shadcn/uime a SaaS," the answer collapses to roughly the same dependency graph: Next.js or React+Vite, Tailwind, shadcn/ui, a Postgres BaaS (Supabase or Neon), Clerk or Auth.js, Stripe, Resend or SendGrid for email, Vercel orStripegraph: Next.js or React+Vite, Tailwind, shadcn/ui, a Postgres BaaS (Supabase or Neon), Clerk or Auth.js, Stripe, Resend or SendGrid for email, Vercel or Netlify for hosting.Supabaseguidance was to assume any credentials embedded in a pre-April-20 public project source (especially Supabase service keys) were exposed, and to rotate them. It also recommended grepping AI chat history for anyTailwindto "build me a SaaS," the answer collapses to roughly the same dependency graph: Next.js or React+Vite, Tailwind, shadcn/ui, a Postgres BaaS (Supabase or Neon), Clerk or Auth.js, Stripe, Resend or SendGrid for email,Twilioand a privileged key (Stripe pk_ vs sk_, OpenAI / Anthropic keys, SendGrid full-access vs restricted, Twilio account SID + auth token).v0v0 (Vercel)VercelLast week was tough for vibe coders and people who use tools like Lovable and Vercel to build and deploy applications.Vitetools to "build me a SaaS," the answer collapses to roughly the same dependency graph: Next.js or React+Vite, Tailwind, shadcn/ui, a Postgres BaaS (Supabase or Neon), Clerk or Auth.js, Stripe, Resend or SendGrid forWindsurfWindsurf (IDE)