| Follow Up Ace | OAuth callback not bound to the user who started it, letting an attacker merge their account into a victim's tenant as an admin | Login CSRF, open redirect (CWE-352, CWE-601) | Critical | Flow bound to the initiating browser; account, user, and origin checked on return; no authority without an active membership | Oct 13, 2026 · test |
|---|
| Follow Up Ace | A context route trusted identity from the request body, returning any contact's record, notes, calls, and texts | Missing authentication, IDOR (CWE-306, CWE-639) | Critical | Route moved behind signed CRM-context verification; mismatched identity refused | Aug 23, 2026 · tests |
|---|
| Law-firm portal | A table holding case data and several privileged database functions were reachable with the public client key | Missing authorization (CWE-284, CWE-862) | Critical | Row-level security enabled, public grants revoked, functions limited to the server role | Oct 12, 2026 |
|---|
| Follow Up Ace | Agent-facing reads fell back to the account owner's grant, so agents could see the whole brokerage's contacts | Incorrect authorization (CWE-863) | High | One credential resolver across 32 files, plus structural tests that fail the build on the unsafe fallback | Aug 23 and Oct 13, 2026 · tests |
|---|
| Follow Up Ace | A real-time room keyed by an ID that repeats across tenants showed AI drafts to the wrong customer | Cross-tenant exposure (CWE-668) | High | Room keys include the tenant and fail closed; a sweep test caught 8 more call sites | Sep 23, 2026 · test |
|---|
| Follow Up Ace | CORS reflection with cross-site cookies let a third-party page read a signed-in user's contacts or change settings | Permissive CORS, CSRF (CWE-942, CWE-352) | High | Router-level origin allowlist and a custom-header requirement on writes | Sep 2, 2026 · test |
|---|
| Law-firm portal | The verification lockout could be beaten with parallel requests | Race condition, brute force (CWE-362, CWE-307) | High | Attempts reserved atomically before the check is evaluated | Oct 12, 2026 · tests |
|---|
| Law-firm portal | Staff role lookup granted admin when the lookup itself failed | Fail-open authorization (CWE-636) | High | Falls back to the narrowest role; unknown roles rejected | Oct 12, 2026 · tests |
|---|
| Law-firm case tool | Admin APIs returning sensitive form answers were reachable by any signed-in staff account | Missing authorization (CWE-862) | High | Staff guard on every admin API, secrets removed from responses, server-side upload limits | Jul 2, 2026 |
|---|
| Law-firm records | An ambiguous record number could return another person's records to an AI review step | IDOR via key collision (CWE-639) | High | Exact typed lookups that fail closed, ID-only audit lines, and a CI-gated self-test | Oct 13, 2026 · CI gate |
|---|
| Law-firm MCP connector | OAuth bearer tokens lost their per-service scope, exposing every tool family to every login | Privilege escalation (CWE-863) | High | Service scope carried through the authorization code into the issued token | Sep 14, 2026 |
|---|
| Lead-capture website | The form let the browser choose the URL the server posted submissions to | SSRF, open relay (CWE-918) | Medium | Destinations come from server configuration only | Aug 28, 2026 |
|---|