mirror of
https://github.com/makeplane/plane.git
synced 2026-09-01 19:48:42 +02:00
ExportIssuesEndpoint.get filtered ExporterHistory by workspace__slug only, with no initiated_by filter, so any workspace ADMIN/MEMBER could list every other member's export history. ExporterHistorySerializer includes url (a presigned S3 link, 7-day expiry, no auth required to use) and token. Since an export defaults to the initiator's own projects (including fully private ones) when no project list is supplied, any workspace member could read another member's private project data by listing exports and using the disclosed url — no crafted request needed, and revoking the user's access doesn't revoke the download. Add initiated_by=request.user to the queryset filter, per the advisory's own suggested fix. 2 new tests, fail-before verified. Co-authored-by: Plane AI <noreply@plane.so>