Plane: Unauthenticated Project Invitation Email Disclosure Enables Unauthorized Project Join Without Token
Plane is an open-source project management tool. Prior to 1.4.0, ProjectJoinEndpoint at GET /api/workspaces/{slug}/projects/{project_id}/join/{pk}/ uses permission_classes = [AllowAny] and returns the full ProjectMemberInvite record, including its email, token, and role, to unauthenticated callers. The corresponding POST endpoint checks only whether the submitted email matches project_invite.email and does not validate the invitation token. An attacker who knows the invitation UUID can discover the invited email, register an account with that email, and accept the invitation without receiving the original invite. This issue is fixed in 1.4.0.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-105635
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 09:45 UTC · Revision 1
Source evidence
Plane: Unauthenticated Project Invitation Email Disclosure Enables Unauthorized Project Join Without Token
core-osv · Original sourcePublished 5 Oct 2026, 18:01 UTC
Plane is an open-source project management tool. Prior to 1.4.0, ProjectJoinEndpoint at GET /api/workspaces/{slug}/projects/{project_id}/join/{pk}/ uses permission_classes = [AllowAny] and returns the full ProjectMemberInvite record, including its email, token, and role, to unauthenticated callers. The corresponding POST endpoint checks only whether the submitted email matches project_invite.email and does not validate the invitation token. An attacker who knows the invitation UUID can discover the invited email, register an account with that email, and accept the invitation without receiving the original invite. This issue is fixed in 1.4.0.
osv:CVE-2026-105635
Complete source record
{
"id": "3dfc20ce5b78851eb76bb48fc0203295dbeb597aa9e9cbd746bef7e47dc1196e",
"url": "https://osv.dev/vulnerability/CVE-2026-105635",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Plane: Unauthenticated Project Invitation Email Disclosure Enables Unauthorized Project Join Without Token",
"summary": "Plane is an open-source project management tool. Prior to 1.4.0, ProjectJoinEndpoint at GET /api/workspaces/{slug}/projects/{project_id}/join/{pk}/ uses permission_classes = [AllowAny] and returns the full ProjectMemberInvite record, including its email, token, and role, to unauthenticated callers. The corresponding POST endpoint checks only whether the submitted email matches project_invite.email and does not validate the invitation token. An attacker who knows the invitation UUID can discover the invited email, register an account with that email, and accept the invitation without receiving the original invite. This issue is fixed in 1.4.0.",
"evidence": "osv:CVE-2026-105635",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2026-105635",
"aliases": [
"CVE-2026-105635",
"GHSA-2r58-hgv7-635q"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/makeplane/plane",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "917b23a6c16d93fc00cef67900eff2755e8b13f7"
},
{
"fixed": "4b52dce76e8aa97a8d87166fa8f4441c1cf646b1"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "1.4.0"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "4b52dce76e8aa97a8d87166fa8f4441c1cf646b1"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "917b23a6c16d93fc00cef67900eff2755e8b13f7"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v1.4.0"
}
]
}
}
],
"versions": [
"v1.3.1",
"v1.3.0",
"v1.2.3",
"v1.2.2",
"v1.2.1",
"v1.2.0",
"v1.1.0",
"v1.0.0",
"v0.28.0",
"v0.27.1",
"v0.27.0",
"v0.26.1",
"v0.26.0",
"v0.25.3",
"v0.25.2",
"v0.25.1",
"v0.25.0",
"v0.24.0",
"v0.23.1",
"v0.23.0",
"v0.22-dev",
"v0.21-dev",
"v0.20-dev",
"v0.19-dev",
"v0.18-dev",
"v0.17-dev",
"v0.16-dev",
"v0.15.4-dev",
"v0.15.3-hotfix",
"v0.15.2-dev",
"v0.15.1-dev",
"v0.15-dev",
"v0.14.2-dev",
"v0.14.1-dev",
"v0.14-dev",
"v0.13.2-dev",
"v0.13.1-dev",
"v0.13-dev",
"v0.12.2-dev",
"v0.12.1-dev",
"v0.12-dev",
"v0.11-dev",
"v0.10-dev",
"v0.9-dev",
"v0.8-dev",
"v0.7.1-dev",
"v0.7-dev",
"v0.6-dev",
"v0.5-dev",
"v0.4-dev",
"v0.3.1-dev",
"v0.1-dev"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-105635.json"
}
}
],
"modified": "2026-10-28T02:30:27.625400226Z",
"provider": "osv",
"references": [
"https://github.com/makeplane/plane/releases/tag/v1.4.0",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/105xxx/CVE-2026-105635.json",
"https://github.com/makeplane/plane/security/advisories/GHSA-2r58-hgv7-635q",
"https://nvd.nist.gov/vuln/detail/CVE-2026-105635",
"https://github.com/makeplane/plane/commit/4b52dce76e8aa97a8d87166fa8f4441c1cf646b1",
"https://github.com/makeplane/plane/pull/9305"
],
"provider_metadata": {
"cwe_ids": [
"CWE-200",
"CWE-284",
"CWE-862"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/105xxx/CVE-2026-105635.json"
}
},
"related_cves": [
{
"value": "CVE-2026-105635",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 494283,
"published_at": "2026-10-05T18:01:52.446+00:00"
}