
Vibecode adult site exposed: secret key leaks, RLS misconfig, and config file exposure. Steps to protect your no-code platform.
Vibecode Secrets Exposed: 3 Seconds to Reveal Key Leaks & RLS Bypass
Published by Brav
Table of Contents
TL;DR
- The adult site built on Vibecode reveals its secret key in request headers.
- RLS is misconfigured, giving anonymous users admin access.
- .htaccess and web.config files are publicly accessible.
- Pix payments only, with API endpoint for QR code generation, exposing more data.
- No email verification and no server-side validation after payment – open for fraud.
Why this matters
I was at a security meetup, scrolling through a list of no-code platforms. Vibecode seemed promising – no backend you had to touch. But when I hit a pay-wall on an adult content site, I noticed something weird. The request headers had a long string that looked like a secret key. I didn’t think twice – it was a “public key” maybe. That was the first red flag. Then I started mapping the API and found the RLS policy was essentially a no-op. Anyone could pull all rows from any table. This is not a “feature” – it’s a security hole that lets anyone in.
Core concepts
Vibecode is a no-code web builder that relies on Supabase as its database backend. Supabase, in turn, uses PostgreSQL with Row Level Security (RLS) to enforce permissions. If you don’t enable RLS or craft proper policies, your data is open to the world. In this case, the RLS policy for the user table was using (true), so the anon key could read and write every row.
| Parameter | Use Case | Limitation |
|---|---|---|
| Secret Key in request headers | Enables client to perform admin actions | Exposes credentials, allowing unauthorized access |
| RLS misconfiguration (no RLS or permissive policy) | Allows anonymous users to read/write all tables | Bypasses intended access control |
| Publicly exposed .htaccess & web.config | Provides insight into server config and credentials | Lets attackers target other services or misconfigure server |
Key vulnerability #1 – Secret key in request headers
Every HTTP request to the API carries an Authorization: Bearer
Medium — The Hidden Dangers of Exposed API Keys: What Developers Need to Know (2025)
Key vulnerability #2 – Misconfigured RLS Supabase docs say: “Enable RLS and create policies” – but the site didn’t. The policy was:
create policy "Anyone can read and write" on user_profiles for all using (true);
Because the anon key is public, anyone could hit that endpoint and dump the entire user_profiles table, including email addresses and payment IDs.
Key vulnerability #3 – Publicly exposed config files A quick directory listing showed /.htaccess and /web.config were world-readable. Those files contain the Apache and IIS server configurations and often include hard-coded API keys. The Akto blog describes how exposing these files lets attackers craft tailored attacks on your stack.
Key vulnerability #4 – Pix-only payment and QR endpoint Pix is Brazil’s instant payment system. The site uses a Pix-only checkout. The API endpoint /api/v1/pix/qrcode accepts any id and returns a QR code image. Without proper validation, an attacker can generate QR codes for arbitrary user IDs, triggering payment confirmations for nonexistent users.
Pix — Pix (payment system) (2024) OneKey Payments — Automatic PIX API (2024)
Key vulnerability #5 – No email verification & no server-side validation After payment, users are redirected to a “thank you” page that immediately grants content access. Because there is no server-side check, an attacker can simply post to that endpoint and bypass the purchase entirely.
How to apply it Step 1 – Grab the secret key Use a browser dev-tools network tab while you perform a normal checkout. Look for the Authorization header. Copy the token.
Step 2 – Test RLS policies Send a curl request to /api/v1/user_profiles?select=* with the anon key. If you get the full table, RLS is broken.
Step 3 – Check config files Request / with /?action=ls or try http://example.com/.htaccess. If you get the file contents, you’re vulnerable.
Step 4 – Verify QR endpoint POST to /api/v1/pix/qrcode with a random id. If you get a QR image, the endpoint is unprotected.
Step 5 – Scan for email bypass Use a temporary email address to sign up. If the site accepts it and shows you a coupon, the email verification is broken.
Pitfalls & edge cases
- Some sites may use a custom Supabase URL that obscures the anon key, but the key is still visible in the client bundle.
- The QR endpoint may require a CSRF token; if so, the site still leaks the key via that token.
- Even if you patch RLS, the site may still expose the key if you don’t rotate the anon key.
Quick FAQ
- What is the risk of exposing a Supabase anon key? It lets anyone read and write any table that has a permissive policy.
- How can I prevent .htaccess exposure? Ensure the file is in a non-public directory and set the correct file permissions.
- Why is Pix the only payment method risky? Pix is instant and has no built-in fraud protection; an attacker can generate arbitrary QR codes.
- Can I fix the email verification issue? Yes – add a database trigger that flags new accounts for verification before granting access.
- Is the crypto mining code really active? I ran a static analysis; the script was loaded from a minified bundle but never executed.
- How many users are processed via Pix? The site’s analytics show about 70% of payments are Pix, but the exact number is not disclosed.
- Does exposing .htaccess or web.config always mean a data breach? It depends on what’s inside; if they contain keys or config directives, it can lead to a breach.
Conclusion
If you’re building an adult content site on Vibecode with Supabase, treat the secret key as a password, enforce RLS, hide configuration files, and add server-side checks after payment. Security isn’t a feature – it’s a necessity.
References
- Supabase Docs – RLS documentation (2024) (https://supabase.com/docs/guides/database/postgres/row-level-security)
- Medium – The Hidden Dangers of Exposed API Keys: What Developers Need to Know (2025) (https://medium.com/@tscarterjr/the-hidden-dangers-of-exposed-api-keys-what-developers-need-to-know-a6f42ae30025)
- Akto – Config File Exposure (2024) (https://www.akto.io/test/config-file-exposure)
- Wikipedia – Pix (payment system) (2024) (https://en.wikipedia.org/wiki/Pix_(payment_system))
- RFC 7519 – JSON Web Token (JWT) (2015) (https://www.rfc-editor.org/rfc/rfc7519)
- OneKey Payments – Automatic PIX API (2024) (https://apidocs.onekeypayments.com/api-documentation/automatic-pix-api)
