Problem
Tasks, findings, and reports are globally addressable by task/report IDs without per-user ownership enforcement.
Evidence
Affected code:
backend/secuscan/routes.py
backend/secuscan/database.py
The database stores tasks, findings, and reports, but task operations are not consistently scoped to an authenticated owner.
Impact
If SecuScan is deployed beyond single-user localhost, one user can enumerate or download another user’s scan results, including sensitive targets, raw outputs, findings, and reports.
Expected fix
- Introduce authenticated user/workspace ownership for tasks
- Store
owner_id on tasks/reports/findings
- Scope all list/get/delete/report endpoints by owner
- Add tests for cross-user task/result/report access
Problem
Tasks, findings, and reports are globally addressable by task/report IDs without per-user ownership enforcement.
Evidence
Affected code:
backend/secuscan/routes.pybackend/secuscan/database.pyThe database stores
tasks,findings, andreports, but task operations are not consistently scoped to an authenticated owner.Impact
If SecuScan is deployed beyond single-user localhost, one user can enumerate or download another user’s scan results, including sensitive targets, raw outputs, findings, and reports.
Expected fix
owner_idon tasks/reports/findings