SecureFlowReview room
Authorized scopeWebMCP checking…
AUTHZ-014high signal
Tenant boundary missing from project lookup
A URL-controlled project ID reaches a record lookup that is not visibly constrained to the active organization.
app/api/projects/[projectId]/route.ts:4286% evidence confidenceEvidence
01 / sourceUntrusted input
request.params.projectId02 / controlVisible guard
requireSession(request)03 / sinkSensitive operation
prisma.project.findUnique({ where: { id } })Evidence boundaryStatic evidence only. Runtime reachability, hidden policy layers, and exploitability require human-controlled validation.
Agent recommendation
Provisional and evidence-bound
Suggested dispositionValidate
The code path has session authentication but no visible tenant predicate. Human validation must confirm that project IDs are obtainable and no repository-level policy is hidden.
Hardening directionBind the lookup to session.organizationId and add negative tests using two tenants with cross-owned project IDs.
Human decision
Not exposed to agent tools
Audit log
Append-only viewagent
Imported three structured candidates
system
Authorization and synthetic scope verified