Authentication bypass via self-signup role escalation
- ASSET
- app.[redacted].com
- CVSS
- 9.1
- STATUS
- Fixed & retested
Impact. A self-registered user was automatically granted a privileged role, landing directly in the internal dashboard with access to other tenants' data.
- 01POST /api/signup with a fresh email
- 02Server assigns a privileged role by defaultHIGH
- 03GET /dashboard → full access, no invite required
- 04Enumerate /api/records?org=* → cross-tenant dataCRITICAL
Remediation. Default new accounts to an unprivileged role; gate role assignment behind an admin invite; enforce tenant scoping on all data endpoints.
AI-ready fix prompt
Paste into Claude Code, Cursor, or Copilot to implement the fix.
In our signup flow, new accounts are auto-assigned a privileged role and can reach the internal dashboard without an invite. Change registration so new users default to an unprivileged role, require an admin-issued invite before any elevated role is granted, and add a server-side tenant-scope check on every data endpoint so a user can only read their own organization's records. Then add tests covering: (1) a fresh signup cannot load the dashboard, (2) role escalation requires an invite, (3) cross-tenant reads return 403.