Impact
Due to inconsistent authorization checks, a company-scoped user can bypass tenant boundaries to read, mutate, and soft-delete users who do not belong to any company (company_id = null). While direct instance authorization (isCurrentUserHasAccess) correctly denies access to these out-of-scope users, multiple API endpoints and bulk action web routes fail to enforce this restriction, relying instead on class-level permissions or broad scoped queries.
Impact:
A malicious user scoped to a specific company (e.g., Company A) can:
Data Leakage: Extract PII and assigned licenses of users outside their tenant via the API (/api/v1/users and /api/v1/users/{id}/licenses).
Data Modification: Mutate out-of-scope user profiles (e.g., changing city, notes) via the /users/bulkeditsave web route.
Data Deletion & Asset Theft: Soft-delete out-of-scope users and transfer their assigned assets to themselves via the /users/merge web route.
Patches
Patched in grokability/snipe-it@fbe05a8,
References
Impact
Due to inconsistent authorization checks, a company-scoped user can bypass tenant boundaries to read, mutate, and soft-delete users who do not belong to any company (company_id = null). While direct instance authorization (isCurrentUserHasAccess) correctly denies access to these out-of-scope users, multiple API endpoints and bulk action web routes fail to enforce this restriction, relying instead on class-level permissions or broad scoped queries.
Impact:
A malicious user scoped to a specific company (e.g., Company A) can:
Data Leakage: Extract PII and assigned licenses of users outside their tenant via the API (/api/v1/users and
/api/v1/users/{id}/licenses).Data Modification: Mutate out-of-scope user profiles (e.g., changing city, notes) via the /users/bulkeditsave web route.
Data Deletion & Asset Theft: Soft-delete out-of-scope users and transfer their assigned assets to themselves via the /users/merge web route.
Patches
Patched in grokability/snipe-it@fbe05a8,
References