jira/apps/api/plane/app/serializers
Manish Gupta 4b52dce76e
[WEB-7855] fix(security): prevent project invite email disclosure via unauthenticated GET (#9305)
ProjectJoinEndpoint.get() was AllowAny and used ProjectMemberInviteSerializer
(fields = "__all__"), leaking the invitee's email and token to anyone who
knew the workspace slug, project ID, and invite UUID (GHSA-2r58-hgv7-635q).

Introduce ProjectMemberInvitePublicSerializer with an explicit safe field list
that excludes `email` and `token`, and swap it in for the public GET endpoint.
The full serializer is retained for authenticated admin viewsets.

Co-authored-by: Plane AI <noreply@plane.so>
2026-07-01 17:34:45 +05:30
..
__init__.py [WEB-7855] fix(security): prevent project invite email disclosure via unauthenticated GET (#9305) 2026-07-01 17:34:45 +05:30
analytic.py chore: add copyright (#8584) 2026-01-27 13:54:22 +05:30
api.py refactor: logging with retention + API token hardening (#9148) 2026-05-27 16:00:05 +05:30
asset.py chore: add copyright (#8584) 2026-01-27 13:54:22 +05:30
base.py chore: add copyright (#8584) 2026-01-27 13:54:22 +05:30
cycle.py chore: add copyright (#8584) 2026-01-27 13:54:22 +05:30
draft.py chore: add copyright (#8584) 2026-01-27 13:54:22 +05:30
estimate.py chore: add copyright (#8584) 2026-01-27 13:54:22 +05:30
exporter.py chore: add copyright (#8584) 2026-01-27 13:54:22 +05:30
favorite.py chore: add copyright (#8584) 2026-01-27 13:54:22 +05:30
importer.py chore: add copyright (#8584) 2026-01-27 13:54:22 +05:30
intake.py chore: add copyright (#8584) 2026-01-27 13:54:22 +05:30
issue.py [WEB-7774] fix(security): sanitize comment_html and intake description_html with nh3 (#9287) 2026-06-23 17:52:31 +05:30
module.py chore: add copyright (#8584) 2026-01-27 13:54:22 +05:30
notification.py chore: add copyright (#8584) 2026-01-27 13:54:22 +05:30
page.py chore: add copyright (#8584) 2026-01-27 13:54:22 +05:30
project.py [WEB-7855] fix(security): prevent project invite email disclosure via unauthenticated GET (#9305) 2026-07-01 17:34:45 +05:30
state.py chore: add copyright (#8584) 2026-01-27 13:54:22 +05:30
user.py chore: add copyright (#8584) 2026-01-27 13:54:22 +05:30
view.py chore: add copyright (#8584) 2026-01-27 13:54:22 +05:30
webhook.py fix: add WEBHOOK_ALLOWED_HOSTS allowlist for internal webhook targets (#9078) 2026-05-15 00:57:39 +05:30
workspace.py [WEB-7854] fix: prevent workspace invite token disclosure and invite hijack (#9297) 2026-06-23 17:47:16 +05:30