# Wiz Research Uncovers Critical Vulnerability in AI Vibe Coding platform Base44 Allowing Unauthorized Access to Private Applications

Unauthenticated register and verify-otp endpoints on Base44 let anyone create a verified account for SSO-only private apps using only the non-secret app_id, bypassing all auth.

- Payout: Research
- Severity: critical
- Program: Base44
- Credited: Wiz Research
- Disclosed: 2025-07-29
- Write-up quality: 7/10
- Original: https://www.wiz.io/blog/critical-vulnerability-base44
- Library page: https://bugbountylibrary.com/r/blog%3Awiz-io-blog-critical-vulnerability-base44
- Tags: domain:cloud domain:web3 impact:ato impact:data-leak impact:internal-access kind:research platform:threat-intel sev:critical tech:rest technique:recon technique:source-review vuln:access-control vuln:auth-bypass vuln:misconfiguration

**Target:** SaaS vibe-coding platform auth API (Swagger-documented REST endpoints)
**Root cause:** The api/apps/{app_id}/auth/register and api/apps/{app_id}/auth/verify-otp endpoints lacked authentication and did not validate the application's privacy/SSO settings before allowing self-registration.
**Steps:**
1. Recon subdomains of base44.com; find public Swagger-UI at app.base44.com and docs.base44.com exposing internal API specs.
2. Review 'auth' API section; note `api/apps/{app_id}/auth/register` and `api/apps/{app_id}/auth/verify-otp` require no auth.
3. Obtain target app_id from the app URI or `manifests/{app_id}/manifest.json` (not a secret).
4. POST to `api/apps/{app_id}/auth/register` with email+password for an SSO-only private app.
5. Receive OTP via email, POST to `api/apps/{app_id}/auth/verify-otp` to verify the account.
6. Log in via the app's SSO page as the newly created verified user, gaining access to the private application.
**How found:** Mapped external attack surface via subdomain recon, got an alert on two public Swagger-UI instances, browsed the auth API section hypothesizing auth tampering would have max impact on an enterprise vibe-coding platform, then noticed register/verify-otp lacked auth and tested against an SSO-only app.
**Exploitation:** Attacker enumerates Base44 apps (custom-domain CNAMEs to base44.onrender.com, or urlscan searches for 'base44' HTML), extracts app_id from manifest path, registers and OTP-verifies an account through the unauthenticated endpoints, then logs in to the private SSO-only app to read internal chatbots, knowledge bases, PII/HR data.
**Escalation:** Systematic compromise across multiple enterprise apps since app_ids are non-secret and exploitation requires only basic API knowledge.
**Insight:** Publicly exposed Swagger-UI on SaaS platforms often reveals internal auth endpoints; check whether registration/OTP endpoints validate the tenant's privacy/SSO config, and treat resource IDs visible in manifest paths or URIs as non-secret identifiers usable for cross-tenant registration.
