Source code Security & compliance

Object fetched by request id with no owner check (IDOR)

Part of the Route authorization check · fix arrives as a pull request

What it is

A handler reads a record by an id taken from the request and returns it without checking that the record belongs to the caller.

Why it matters

This is IDOR, and it needs no exploit — changing a number in the URL is the whole attack. The endpoint returns 200 and logs a successful request, so nothing distinguishes the enumeration from ordinary use.

How to fix it

Scope the lookup to the caller: query by both the record id and the authenticated user or tenant id, so a mismatch returns nothing. Do the check in the query rather than after it, and prefer unguessable ids as defence in depth, not as the control.

Run them all on your app

Connect your repo and your live services with read-only scopes. The first scan is free, and nothing changes without your approval.