CVE-2026-104963: Plane: Workspace cycle and module endpoints missing project-membership filter expose private project metadata to any workspace member
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 projectprojectprojectmembermember=request.user filter, making the cycle and module endpoints inconsistent outliers. This issue is fixed in 1.4.0.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Planeto a version that resolves this vulnerability.Fixed in 1.4.0
Event History
Frequently Asked Questions
Who can access the exposed metadata?
Any authenticated member of an affected workspace can access it, including a Guest who is assigned to only one project. The requester does not need membership in the private projects whose cycle and module records are returned.
What access and attack path are required?
An attacker needs valid authentication as a workspace member and network access to the Plane API. They can query the workspace cycle or module endpoints for the workspace; no user interaction is required.
What information may be disclosed?
The affected endpoints can expose private-project cycle and module names, descriptions, sprint dates, issue counts, progress snapshots, external integration IDs, linked URLs, and member lists.
How can teams determine whether they are affected?
Plane versions prior to 1.4.0 are affected. In an affected workspace, a member with access to only one project can test whether the cycle or module API responses include records belonging to projects they cannot access.
What should be done if an immediate upgrade is not possible?
Restrict workspace membership to users who are authorized to view metadata for all projects in that workspace, especially Guest accounts. Review access to private-project cycle and module metadata and limit API exposure where possible until upgrading to 1.4.0.