Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as workspace Guest
-
DeliveryEnumerate foreign asset UUIDs in workspace
-
ExploitPOST asset_ids to bulk-assign endpoint
-
ExecutionReassign ownership to attacker-controlled project
-
ImpactObtain presigned download URL for hijacked file
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | Requires an authenticated workspace account at minimum Guest level (PR:L) in a workspace that contains more than one project with assets belonging to other users/projects - i.e. a multi-tenant or shared-collaboration deployment. The attacker must know or enumerate valid asset UUIDs from a foreign project within the same workspace and invoke ProjectBulkAssetEndpoint.post (apps/api/plane/app/views/asset/v2.py). Limiting factors: exploitation is impossible for fully unauthenticated outsiders and is constrained to assets residing in the SAME workspace (cross-workspace isolation is not bypassed); a single-project or single-tenant workspace offers no foreign assets to hijack. Affects Plane versions prior to 1.4.0; no special non-default configuration flag is needed beyond having multiple projects and shared Guest access. |
| Impact | This is a genuine high-priority access-control flaw, not a CVSS-inflated paper risk. The vendor-provided CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N = 9.6) is internally consistent with the description: a low-privileged workspace Guest can trigger it remotely over the network with no user interaction and low complexity, and the scope change (S:C) reflects that the bug crosses project authorization boundaries - a Guest in one project reaches assets owned by another project in the same workspace. The CWE-639 (Authorization Bypass Through User-Controlled Key) classification matches the root cause exactly: id__in=asset_ids was scoped only by workspace slug, never by the URL project_id, so attacker-supplied asset UUIDs from foreign projects were accepted. Exploitation status: no public exploit identified at time of analysis - there is no CISA KEV listing and no proof-of-concept referenced; the available GitHub artifacts are the security advisory, fix PR, patch commit, and release, which confirm the vulnerability and remediation but are not weaponized exploit code. No EPSS score was supplied, so widespread-scanning probability cannot be quantified from the input. The practical ceiling on risk is that the attacker must already hold a valid (even Guest-level) workspace account, so this is an insider/authenticated-tenant threat rather than fully anonymous internet exploitation. |
| Exploit ScenarioDerived | An attacker holds a low-privilege Guest account in a shared Plane workspace (e.g. an external collaborator) and wants files from a project they cannot access. They call ProjectBulkAssetEndpoint.post with asset UUIDs belonging to another project in the same workspace, reassigning those assets' issue_id/comment_id/page_id/draft_issue_id or project_id to an entity in a project they control; Plane then treats the attacker's project as owner and returns a presigned download URL for the hijacked file. No public proof-of-concept is referenced, but the fix diff makes the vulnerable query trivially reproducible for a capable attacker. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 05, 2026
Improper authorization in Plane before 1.4.0 lets an authenticated workspace Guest hijack file assets from other projects in the same workspace through ProjectBulkAssetEndpoint.post. By supplying valid asset UUIDs from a foreign project and reassigning issue_id, comment_id, page_id, draft_issue_id, or project_id to an entity they control, the attacker causes Plane to treat their project as owner and return a presigned download URL for the hijacked file. The flaw is assessed as CVSS 9.6 (PR:L, scope changed) and is fixed in 1.4.0; no public exploit identified at time of analysis.
RemediationAI
Vendor-released patch: 1.4.0. Upgrade Plane to version 1.4.0 or later, using the official release at https://github.com/makeplane/plane/releases/tag/v1.4.0; the fix is also visible in PR #9495 and commit 15e835710c7f938e0fae9c0ee77bb8162ff436a0, and the advisory is GHSA-r2hw-fff3-pjwp. If immediate upgrade is not possible, reduce exposure by removing or downgrading untrusted Guest accounts in workspaces that contain multiple projects, segregating sensitive projects into separate workspaces so that Guest membership cannot span asset ownership boundaries, and monitoring or auditing asset-association activity and presigned URL generation for unexpected cross-project UUIDs. These compensating controls have trade-offs: restricting Guests breaks shared collaboration, and workspace separation adds administrative overhead and may disrupt cross-project workflows; they do not fully remove the authorization bypass while the vulnerable version remains deployed. No public exploit identified at time of analysis, but the prerequisite is any authenticated Guest account in a multi-project workspace, so prioritize patching where Guest access is broadly granted.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Plane is an open-source project management application with a Django/Python API; the affected endpoint lives in apps/api/plane/app/views/asset/v2.py and handles bulk association of uploaded file assets to issues, comments, pages, draft issues, or projects. The root cause is CWE-639 (Authorization Bypass Through User-Controlled Key): the bulk asset query keyed on attacker-supplied asset_ids and workspace slug without sufficiently binding the operation to the requester's own uploads and the URL's project_id. A Guest in a shared workspace can therefore reference asset UUIDs belonging to another project, rebind their association fields to an attacker-controlled entity, and receive a presigned URL for the file. The CVSS vector AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N reflects an authenticated network attack requiring no user interaction that crosses a project/ownership boundary and compromises confidentiality and integrity of file assets. CPE cpe:2.3:a:makeplane:plane:*:*:*:*:*:*:*:* identifies all Plane versions before the fixed release.
Know when Plane gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N
Network-reachable API with low complexity; PR:L because a valid workspace Guest is required; S:C as it crosses project authorization boundaries; C:H (file disclosure) and I:H (ownership reassignment), no availability impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Plane is an open-source project management tool. Prior to 1.4.0, ProjectBulkAssetEndpoint.post in apps/api/plane/app/views/asset/v2.py retrieves assets using id__in=asset_ids and workspace__slug=slug but does not constrain the query with project_id from the URL. A workspace Guest can provide asset UUIDs from another project in the same workspace and reassign their issue_id, comment_id, page_id, draft_issue_id, or project_id to an entity the attacker controls. Plane then treats the attacker's project as the new owner and provides a presigned download URL for the hijacked file. This issue is fixed in 1.4.0.
Technical POC Analysis
CWE-639: Authorization Bypass Through User-Controlled Key.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Plane, the project management and file collaboration platform, contains an authorization flaw in versions before 1.4.0 that lets an authenticated workspace Guest obtain download links for file assets belonging to projects they were never granted access to. Because the weakness crosses project boundaries within a single workspace, one low-privilege guest account can reach files, attachments, and pages belonging to every team sharing that workspace. Leadership should treat this as a confidentiality exposure wherever Plane holds sensitive internal documents or is shared with external collaborators, contractors, or partner organizations.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Plane version 0.7.1 allows an unauthenticated attacker to view all stored server files of all users. Rated high severity
Authenticated users who can create a workspace in Plane can force the application's background worker to fetch internal-
Unauthenticated remote attackers can forge Django-signed session cookies, CSRF tokens, and password-reset tokens, and by
Workspace invitation hijacking in Plane prior to 1.4.0 lets an unauthenticated attacker take over a pending workspace in
Plane is an open-source project management tool. Rated medium severity (CVSS 5.8), this vulnerability is remotely exploi
Account takeover in Plane (makeplane) versions prior to 1.4.0 allows remote unauthenticated attackers to log in as exist
Brute-forceable magic-code email login in Plane versions prior to 1.4.0 allows unauthenticated remote attackers to guess
Server-side request forgery in Plane, the open-source project management tool, allows a low-privilege user of a connecte
Authenticated cross-workspace access control bypass in Plane (makeplane/plane) before version 1.4.0 lets any user with a
Plane prior to 1.4.0 allows an authenticated workspace member to bypass project-level authorization and join any project
Stored cross-site scripting in Plane prior to 1.4.0 lets an authenticated low-privilege workspace member - including a G
Stored cross-site scripting in Plane (versions up to and including 1.3.1) allows any authenticated user - including a br
EUVD-2026-92578
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB