{"api_version":"1","generated_at":"2026-10-21T15:35:21+00:00","cve":"CVE-2026-104963","urls":{"html":"https://cve.report/CVE-2026-104963","api":"https://cve.report/api/cve/CVE-2026-104963.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-104963","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-104963"},"summary":{"title":"Plane: Workspace cycle and module endpoints missing project-membership filter expose private project metadata to any workspace member","description":"Plane is an open-source project management tool. Prior to 1.4.0, GET /api/workspaces/{slug}/cycles/ through WorkspaceCyclesEndpoint and GET /api/workspaces/{slug}/modules/ through WorkspaceModulesEndpoint return records from every project in a workspace without checking whether the requester belongs to each project. Any authenticated workspace member, including a Guest with access to only one project, can enumerate names, descriptions, sprint dates, issue counts, progress snapshots, external integration IDs, linked URLs, and member lists for cycles and modules in private projects. The sibling WorkspaceLabelsEndpoint and WorkspaceStatesEndpoint apply the correct project__project_projectmember__member=request.user filter, making the cycle and module endpoints inconsistent outliers. This issue is fixed in 1.4.0.","state":"PUBLISHED","assigner":"GitHub_M","published_at":"2026-10-05 17:17:11","updated_at":"2026-10-07 21:17:09"},"problem_types":["CWE-200","CWE-863","CWE-200 CWE-200: Exposure of Sensitive Information to an Unauthorized Actor","CWE-863 CWE-863: Incorrect Authorization"],"metrics":[{"version":"3.1","source":"security-advisories@github.com","type":"Secondary","score":"4.3","severity":"MEDIUM","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N","data":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N","baseScore":4.3,"baseSeverity":"MEDIUM","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"LOW","integrityImpact":"NONE","availabilityImpact":"NONE"}},{"version":"3.1","source":"CNA","type":"DECLARED","score":"4.3","severity":"MEDIUM","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N","data":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"NONE","baseScore":4.3,"baseSeverity":"MEDIUM","confidentialityImpact":"LOW","integrityImpact":"NONE","privilegesRequired":"LOW","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N","version":"3.1"}}],"references":[{"url":"https://github.com/makeplane/plane/releases/tag/v1.4.0","name":"https://github.com/makeplane/plane/releases/tag/v1.4.0","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/makeplane/plane/pull/9373","name":"https://github.com/makeplane/plane/pull/9373","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/makeplane/plane/commit/b3591b9e6354f39715203787cc21f0cccd2cb3a9","name":"https://github.com/makeplane/plane/commit/b3591b9e6354f39715203787cc21f0cccd2cb3a9","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/makeplane/plane/security/advisories/GHSA-wcc5-qgfr-8g9c","name":"https://github.com/makeplane/plane/security/advisories/GHSA-wcc5-qgfr-8g9c","refsource":"134c704f-9b21-4f2e-91b3-4a467353bcc0","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-104963","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-104963","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"makeplane","product":"plane","version":"affected < 1.4.0","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2026","cve_id":"104963","cve":"CVE-2026-104963","epss":"0.001990000","percentile":"0.089450000","score_date":"2026-10-07","updated_at":"2026-10-08 00:05:43"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"adp":[{"metrics":[{"other":{"content":{"id":"CVE-2026-104963","options":[{"Exploitation":"poc"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","timestamp":"2026-10-07T20:52:36.914862Z","version":"2.0.3"},"type":"ssvc"}}],"providerMetadata":{"dateUpdated":"2026-10-07T20:53:02.037Z","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP"},"references":[{"tags":["exploit"],"url":"https://github.com/makeplane/plane/security/advisories/GHSA-wcc5-qgfr-8g9c"}],"title":"CISA ADP Vulnrichment"}],"cna":{"affected":[{"product":"plane","vendor":"makeplane","versions":[{"status":"affected","version":"< 1.4.0"}]}],"descriptions":[{"lang":"en","value":"Plane is an open-source project management tool. Prior to 1.4.0, GET /api/workspaces/{slug}/cycles/ through WorkspaceCyclesEndpoint and GET /api/workspaces/{slug}/modules/ through WorkspaceModulesEndpoint return records from every project in a workspace without checking whether the requester belongs to each project. Any authenticated workspace member, including a Guest with access to only one project, can enumerate names, descriptions, sprint dates, issue counts, progress snapshots, external integration IDs, linked URLs, and member lists for cycles and modules in private projects. The sibling WorkspaceLabelsEndpoint and WorkspaceStatesEndpoint apply the correct project__project_projectmember__member=request.user filter, making the cycle and module endpoints inconsistent outliers. This issue is fixed in 1.4.0."}],"metrics":[{"cvssV3_1":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"NONE","baseScore":4.3,"baseSeverity":"MEDIUM","confidentialityImpact":"LOW","integrityImpact":"NONE","privilegesRequired":"LOW","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N","version":"3.1"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-200","description":"CWE-200: Exposure of Sensitive Information to an Unauthorized Actor","lang":"en","type":"CWE"}]},{"descriptions":[{"cweId":"CWE-863","description":"CWE-863: Incorrect Authorization","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-10-05T16:51:25.444Z","orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","shortName":"GitHub_M"},"references":[{"name":"https://github.com/makeplane/plane/security/advisories/GHSA-wcc5-qgfr-8g9c","tags":["x_refsource_CONFIRM"],"url":"https://github.com/makeplane/plane/security/advisories/GHSA-wcc5-qgfr-8g9c"},{"name":"https://github.com/makeplane/plane/pull/9373","tags":["x_refsource_MISC"],"url":"https://github.com/makeplane/plane/pull/9373"},{"name":"https://github.com/makeplane/plane/commit/b3591b9e6354f39715203787cc21f0cccd2cb3a9","tags":["x_refsource_MISC"],"url":"https://github.com/makeplane/plane/commit/b3591b9e6354f39715203787cc21f0cccd2cb3a9"},{"name":"https://github.com/makeplane/plane/releases/tag/v1.4.0","tags":["x_refsource_MISC"],"url":"https://github.com/makeplane/plane/releases/tag/v1.4.0"}],"source":{"advisory":"GHSA-wcc5-qgfr-8g9c","discovery":"UNKNOWN"},"title":"Plane: Workspace cycle and module endpoints missing project-membership filter expose private project metadata to any workspace member"}},"cveMetadata":{"assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","assignerShortName":"GitHub_M","cveId":"CVE-2026-104963","datePublished":"2026-10-05T16:51:25.444Z","dateReserved":"2026-10-02T18:16:13.629Z","dateUpdated":"2026-10-07T20:53:02.037Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-10-05 17:17:11","lastModifiedDate":"2026-10-07 21:17:09","problem_types":["CWE-200","CWE-863","CWE-200 CWE-200: Exposure of Sensitive Information to an Unauthorized Actor","CWE-863 CWE-863: Incorrect Authorization"],"metrics":{"cvssMetricV31":[{"source":"security-advisories@github.com","type":"Secondary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N","baseScore":4.3,"baseSeverity":"MEDIUM","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"LOW","integrityImpact":"NONE","availabilityImpact":"NONE"},"exploitabilityScore":2.8,"impactScore":1.4}],"ssvcV203":[{"source":"134c704f-9b21-4f2e-91b3-4a467353bcc0","ssvcData":{"timestamp":"2026-10-07T20:52:36.914862Z","id":"CVE-2026-104963","options":[{"exploitation":"poc"},{"automatable":"no"},{"technicalImpact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}]},"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"104963","Ordinal":"1","Title":"Plane: Workspace cycle and module endpoints missing project-memb","CVE":"CVE-2026-104963","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"104963","Ordinal":"1","NoteData":"Plane is an open-source project management tool. Prior to 1.4.0, GET /api/workspaces/{slug}/cycles/ through WorkspaceCyclesEndpoint and GET /api/workspaces/{slug}/modules/ through WorkspaceModulesEndpoint return records from every project in a workspace without checking whether the requester belongs to each project. Any authenticated workspace member, including a Guest with access to only one project, can enumerate names, descriptions, sprint dates, issue counts, progress snapshots, external integration IDs, linked URLs, and member lists for cycles and modules in private projects. The sibling WorkspaceLabelsEndpoint and WorkspaceStatesEndpoint apply the correct project__project_projectmember__member=request.user filter, making the cycle and module endpoints inconsistent outliers. This issue is fixed in 1.4.0.","Type":"Description","Title":"Plane: Workspace cycle and module endpoints missing project-memb"}]}}}