Plane, an open-source project management tool, had a Server-Side Request Forgery (SSRF) vulnerability in versions prior to 1.4.0. The issue occurred in the OAuth avatar synchronization flow, where the application fetched avatar URLs from provider user data without validating internal IP addresses and followed redirects by default. This allowed attackers to supply avatar URLs that redirected to internal-only resources, such as metadata endpoints. The fetched content was then uploaded as a user avatar and exposed via a public API endpoint, enabling exfiltration of internal data. The vulnerability is fixed in version 1.4.0.
Plane, an open-source project management tool, has a high-severity cross-site scripting (XSS) vulnerability (CVE-2026-104979) affecting versions prior to 1.4.0. The vulnerability allows any authenticated user to inject arbitrary HTML into projects with a published DeployBoard and intake enabled. When a project member or viewer clicks the malicious link, JavaScript executes in their session, potentially exfiltrating a long-lived API token. This issue is fixed in Plane version 1.4.0.
Plane, an open-source project management tool, had an authorization flaw prior to version 1.4.0. Authenticated users could access the project invitation list endpoint if they knew the workspace slug and project ID. Additionally, the public project invitation join endpoint accepted invitations based solely on a submitted email address without mailbox verification. This allowed attackers to enumerate invitations, register accounts with invited email addresses, and join targeted workspaces and projects. The vulnerability is fixed in Plane version 1.4.0.
Plane is an open-source project management tool. Prior to 1.4.0, the fix for CVE-2026-27706 and GHSA-jcc6-f9v6-f7jw, an SSRF in work-item link unfurling shipped in v1.2.2, remains incomplete in the v1.3.1 GA release. Any authenticated project member can make the server fetch attacker-selected internal targets, including cloud metadata at 169.254.169.254, and read the response body returned as the link title or favicon. Complete hardening exists on main in PR 9163 but was not included in an earlier released tag. This issue is fixed in 1.4.0.
Plane, an open-source project management tool, has a Server-Side Request Forgery (SSRF) vulnerability identified as CVE-2026-104976. Versions prior to 1.4.0 do not properly validate the GITEA_HOST URL, allowing requests to internal or private IP addresses during the Gitea OAuth flow. Additionally, avatar URLs from Gitea user profiles are not validated, enabling an attacker to cause Plane to fetch internal resources. This vulnerability is fixed in version 1.4.0.
Plane is an open-source project management tool. Prior to 1.4.0, Plane's dashboard asset endpoints in plane/app/views/asset/v2.py were remediated for two cross-tenant asset IDORs, CVE-2026-27705 and CVE-2026-46558. Those fixes added a membership check and project_id and workspace__slug scoping to the asset endpoints in that file. The Spaces app in plane/space/views/asset.py serves related public-board operations under /api/public/ but was not remediated. Its EntityAssetEndpoint and AssetRestoreEndpoint resolve a DeployBoard from a public anchor and then read or modify FileAsset rows scoped only to the board's workspace, without a membership check or project_id constraint. An attacker can therefore read, overwrite, or restore assets across projects and workspaces. This issue is fixed in 1.4.0.
Plane, an open-source project management tool, has an improper access control vulnerability prior to version 1.4.0. In affected versions, a user account deactivated by setting is_active=False can still log in using existing credentials. Upon successful login, the account is silently reactivated by setting is_active back to True without notifying administrators. This vulnerability is fixed in version 1.4.0.
Plane, an open-source project management tool, has a Server-Side Request Forgery (SSRF) vulnerability identified as CVE-2026-104973. The issue exists in versions prior to 1.4.0 where webhook IP address validation is incomplete, allowing DNS rebinding to bypass SSRF protections. This vulnerability is fixed in version 1.4.0.
Plane is an open-source project management tool. Prior to 1.4.0, DuplicateAssetEndpoint fetches a source FileAsset without limiting it to the caller's workspace, allowing cross-workspace asset duplication. WorkspaceFileAssetEndpoint and the legacy FileAssetEndpoint omit workspace authorization, allowing authenticated users to read, create, modify, or delete assets in workspaces where they are not members. Separately, WorkspaceViewViewSet.retrieve lacks the authorization decorator used by its sibling actions, exposing an unauthorized workspace-view read surface. This issue is fixed in 1.4.0.
Plane, an open-source project management tool, has a race condition vulnerability (CVE-2026-104970) affecting versions prior to 1.4.0. The flaw occurs in the InstanceAdminSignUpEndpoint where concurrent unauthenticated requests can bypass proper synchronization and create multiple instance administrators. This allows attackers to gain unrestricted instance administration privileges. The issue is fixed in version 1.4.0.
Plane is an open-source project management tool. Prior to 1.4.0, the cycle-issues endpoint accepts issue UUIDs in the request body without validating that they belong to the caller's workspace. An authenticated user can add issues from any workspace to a cycle they control. If a victim issue is already assigned to a cycle, the operation removes it from the victim's cycle, causing a destructive cross-tenant write. This issue is fixed in 1.4.0.
Plane, an open-source project management tool, has a missing authorization vulnerability prior to version 1.4.0. An authenticated user who knows a workspace slug can access workspace member information and project member data via a specific API endpoint, even if they are not a member of that workspace. This issue is due to the lack of workspace-membership checks in the API's permission implementation. The vulnerability is fixed in version 1.4.0.
Plane is an open-source project management tool. Prior to 1.4.0, BulkDeleteIssuesEndpoint and SubIssuesEndpoint in apps/api/plane/app/views/issue/ accept body- or URL-supplied issue IDs and operate on them without checking that the IDs belong to the caller's workspace and project. The permission decorator on each endpoint validates only that the caller is a member or administrator of the workspace and project named in the URL. BulkDeleteIssuesEndpoint can destroy CycleIssue and ModuleIssue associations belonging to foreign issues. SubIssuesEndpoint can re-parent foreign issues under an attacker-selected issue and return the foreign issues' metadata. This issue is fixed in 1.4.0.
Plane, an open-source project management tool, has an authorization bypass vulnerability prior to version 1.4.0. The flaw allows authenticated users to read or modify estimates and inject comments in issues belonging to other workspaces due to improper scoping of nested resource identifiers. This occurs because certain endpoints fetch resources by primary key without verifying they belong to the workspace and project specified in the URL. The issue is fixed in version 1.4.0.
Plane is an open-source project management tool. Prior to 1.4.0, the issue-relation endpoint accepts issue UUIDs in the request body without validating that they belong to the caller's workspace. An authenticated user can create relations linking their own issues to issues in any other workspace on the instance, leaking issue metadata through activity events. This issue is fixed in 1.4.0.
Plane, an open-source project management tool, had a vulnerability prior to version 1.4.0 where its project update endpoint authorized users based on the workspace slug but loaded projects globally by UUID without workspace binding. This allowed administrators of one workspace to modify projects in other workspaces if they knew the project UUID, violating tenant isolation. The issue was fixed in version 1.4.0.
Plane, an open-source project management tool, had a vulnerability prior to version 1.4.0 where certain API endpoints exposed sensitive information from private projects to any authenticated workspace member. Specifically, the GET /api/workspaces/{slug}/cycles/ and GET /api/workspaces/{slug}/modules/ endpoints returned data without verifying project membership, allowing unauthorized enumeration of project details. This issue was fixed in version 1.4.0.
Plane is an open-source project management tool. Prior to 1.4.0, GET /api/v1/workspaces/{slug}/projects/{project_id}/members/ returns the complete project-member roster, including each member's email address, first and last name, display name, avatar, and role. ProjectMemberPermission gates the endpoint, but its SAFE_METHODS branch checks only whether the caller is an active ProjectMember of any project in the workspace and does not bind the check to view.project_id. The view then filters solely by the project_id supplied in the URL. Consequently, any authenticated user who belongs to one project in a workspace, including a Guest, can read the roster of another private project in the same workspace. This issue is fixed in 1.4.0.
Plane, an open-source project management tool, has an authorization vulnerability prior to version 1.4.0. The WorkspaceOwnerPermission check does not verify if a user is active, allowing deactivated users to retain workspace owner access. This issue is fixed in version 1.4.0.
Plane is an open-source project management tool. Prior to 1.4.0, Plane exposes the workspace-scoped GET /api/assets/v2/workspaces/{workspace_slug}/download/{asset_id}/ endpoint for project-bound FileAsset objects without enforcing access to the asset's owning project. An authenticated user who belongs to the same workspace, is not a member of the victim's secret project, and knows the target asset UUID can receive a 302 redirect to a signed download URL. The intended project-scoped route for the same asset correctly returns 403. Confirmed affected project-bound asset types are ISSUE_ATTACHMENT, COMMENT_DESCRIPTION, PAGE_DESCRIPTION, and PROJECT_COVER. This bypass exposes private file content protected by the secret project boundary. This issue is fixed in 1.4.0.