Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as workspace member
-
DeliveryObtain target asset UUID
-
ExploitCall workspace-scoped download endpoint
-
ExecutionReceive 302 to signed URL
-
ImpactDownload private project 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 session as an active member (or guest) of the same workspace that contains the target 'secret' project, while NOT being a member of that project - i.e. an in-workspace cross-project privilege boundary. The attacker must also know (or obtain) the target FileAsset's UUID, since the vulnerable workspace-scoped route GET /api/assets/v2/workspaces/{workspace_slug}/download/{asset_id}/ is keyed on that ID. Only project-bound asset types are exposed - confirmed: ISSUE_ATTACHMENT, COMMENT_DESCRIPTION, PAGE_DESCRIPTION, and PROJECT_COVER; workspace-level assets (WORKSPACE_LOGO, USER_AVATAR, USER_COVER) with null project_id are not in scope. Limiting factors: no exploitation is possible without workspace authentication, the project-scoped route for the same asset already returns 403, and the knowledge-of-UUID requirement reduces opportunistic/blind exploitation. Affected only in Plane versions prior to 1.4.0. |
| Impact | This is a moderate-severity broken-access-control / IDOR flaw (CWE-639) with a vendor CVSS of 6.5 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N). The signals are internally consistent and point to a real but bounded risk: the attack vector is network-based and low-complexity, but it requires valid authenticated workspace membership (PR:L), so this is not an unauthenticated internet-wide exposure. Impact is confidentiality-only (C:H, I:N, A:N) - an attacker can read/download private project files but cannot modify or destroy them. There is no EPSS score, no CISA KEV listing, and no public POC supplied in the intelligence, so the exploitation status is 'no public exploit identified at time of analysis'; the absence of KEV/EPSS data means no active-exploitation signal either way. The practical limiter is that the attacker must already be an authenticated member of the same workspace AND must know the target asset's UUID, which constrains this to an insider/multi-tenant-workspace threat model rather than opportunistic mass exploitation. Priority should be elevated for Plane deployments that use 'secret' project boundaries to isolate sensitive teams within a shared workspace, where the confidentiality boundary this bug breaks is exactly the security control relied upon. |
| Exploit ScenarioDerived | An authenticated member of a shared Plane workspace who is deliberately excluded from a confidential ('secret') project obtains or guesses the UUID of a file asset (e.g. an issue attachment or page description) belonging to that project. They call the workspace-scoped GET /api/assets/v2/workspaces/{slug}/download/{asset_id}/ endpoint and receive a 302 redirect to a signed download URL, retrieving private content even though the project-scoped route correctly returns 403. No public exploit code was identified in the provided intelligence, but the attack is trivially scriptable once an asset UUID is known. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 05, 2026
Improper authorization in Plane (makeplane) prior to 1.4.0 allows an authenticated workspace member or guest who is not a member of a victim's secret project to download that project's private file assets through the workspace-scoped endpoint GET /api/assets/v2/workspaces/{workspace_slug}/download/{asset_id}/, which issues a 302 redirect to a signed download URL instead of enforcing project membership. The flaw is a broken-access-control/IDOR issue (CWE-639) rated CVSS 6.5 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N), with confidentiality-only impact and no integrity or availability effect; exploitation requires a valid workspace-authenticated session plus knowledge of the target FileAsset UUID, and only project-bound asset types (ISSUE_ATTACHMENT, COMMENT_DESCRIPTION, PAGE_DESCRIPTION, PROJECT_COVER) are exposed, while workspace-level assets with a null project_id are unaffected. There is no public exploit identified at time of analysis and the issue is not listed in CISA KEV; a vendor fix is available in Plane 1.4.0 (PR #9372, commit e63f0c3b3404d669ae05dd9050aab72292f87e5c).
RemediationAI
Vendor-released patch: upgrade to Plane 1.4.0, which fixes the issue via PR #9372 (https://github.com/makeplane/plane/pull/9372, commit e63f0c3b3404d669ae05dd9050aab72292f87e5c) by enforcing an active ProjectMember check on the asset's project for all project-bound FileAsset operations on the workspace-scoped v2 asset endpoint; releases are published at https://github.com/makeplane/plane/releases/tag/v1.4.0 and the advisory is https://github.com/makeplane/plane/security/advisories/GHSA-wrrw-wvfv-67h7. Where immediate upgrade is not possible, apply targeted compensating controls and accept their trade-offs: restrict network access to /api/assets/v2/workspaces/*/download/* (for example at a reverse proxy or WAF) so only trusted users reach the workspace-scoped download route, at the cost of breaking legitimate cross-project asset access; audit and rotate signed storage URLs and treat FileAsset UUIDs as sensitive identifiers, since the exploit requires knowledge of the exact asset ID, and monitor API logs for 302 responses on the workspace-scoped download path issued to users who are not members of the corresponding project. Note that the project-scoped asset route already returns 403 for non-members, so prefer integrating project-scoped asset URLs into clients where possible; disabling the workspace-scoped v2 asset endpoint entirely is the strongest interim mitigation but will break file previews and downloads until the patched version is deployed.
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 Django/DRF project management platform, and the vulnerable component is the v2 asset view (apps/api/plane/app/views/asset/v2.py). The root cause class is CWE-639 (Authorization Bypass Through User-Controlled Key), a classic IDOR: the workspace-scoped GET /api/assets/v2/workspaces/{workspace_slug}/download/{asset_id}/ route authenticates the caller only at the workspace level and then dereferences the client-supplied asset_id against the FileAsset table without verifying the caller's membership in the asset's owning project. Because FileAsset rows for ISSUE_ATTACHMENT, COMMENT_DESCRIPTION, PAGE_DESCRIPTION and PROJECT_COVER carry a non-null project_id, a workspace member outside that project could still obtain a 302 redirect to a signed storage URL and thereby read the file; the project-scoped route for the same asset correctly returns 403, confirming the inconsistency. The upstream fix adds a has_project_asset_access() helper that requires an active ProjectMember row scoped to both the asset's workspace_id and project_id, returning True automatically when project_id is NULL (WORKSPACE_LOGO, USER_AVATAR, USER_COVER), and applies this check to the post, patch and delete paths as well as get. Contract tests in the upstream patch note that this is a follow-on hardening of an earlier asset-IDOR cluster (GHSA-qw87) whose previous fix was incomplete, tracked upstream as GHSA-h7mc-p9mm-2r4w / GHSA-cjph-cgm5-8pw8 (WEB-8066). The affected CPE is cpe:2.3:a:makeplane:plane:*:*:*:*:*:*:*:* for all releases before 1.4.0.
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:U/C:H/I:N/A:N
Network-reachable API callable by any authenticated workspace member (PR:L, no UI); confidentiality-only exposure of private files (C:H, I:N, A:N); AC:L since the request itself is simple given a known asset UUID.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
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.
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.
Cross-workspace authorization bypass in Plane (makeplane) prior to version 1.3.1 allows any authenticated user of one wo
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
Plane (makeplane/plane) through version 1.4.2 makes security decisions based on the client-supplied X-Forwarded-For head
Improper authorization in Plane before 1.4.0 lets an authenticated workspace Guest hijack file assets from other project
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
EUVD-2026-92481
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB