Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as Project Member role 15
-
ExploitSend PATCH to project-member update endpoint
-
ExecutionAssign equal Member role to a Guest
-
ImpactGuest gains unauthorized Member capabilities
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V8 - Authorization Least privilege enforcement
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Attacker must already hold an authenticated Project Member account at role 15 within the target project/workspace, and a Project Guest (role 5) must exist in the same project to be promoted. Exploitation is a single PATCH request to /api/workspaces/{workspace_slug}/projects/{project_id}/members/{member_pk}/ setting the new role equal to the attacker's Member role, which bypasses the check that only blocks strictly-higher roles. Limiting factors: requires valid in-project membership (not remote-unauthenticated), the escalation is capped at the attacker's own role level (cannot reach Project Admin role 20), and it affects only Plane deployments prior to version 1.4.0. |
| Impact | This is a moderate-severity, authenticated privilege-escalation flaw (CWE-269) rather than a high-urgency issue. The provided CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N, base 5.4) correctly reflects that an attacker must already be a legitimate authenticated Project Member (PR:L) - this is NOT unauthenticated. The attack is network-reachable with low complexity and no user interaction, but the ceiling is capped: the flawed check blocks assigning a role HIGHER than the requester's own, so a role-15 Member can only promote a role-5 Guest UP TO the equal Member role - it does not permit escalation to Project Admin (role 20) or workspace takeover. No EPSS score, KEV listing, or SSVC decision data was supplied; there is no CISA KEV entry and no public exploit referenced, only the vendor patch/PR. Signals are internally consistent (no CVSS-vs-description conflict), but the real-world risk is bounded by the insider-access prerequisite and the limited impact of a one-step Guest→Member promotion. Priority: patch in normal cycles; this is a governance/authorization-bypass bug, not a mass-exploitation threat. |
| Exploit ScenarioDerived | A disgruntled or compromised regular Project Member (role 15) in a Plane workspace sends a crafted PATCH request to the project-member update endpoint, assigning the equal Member role to an existing Project Guest (role 5). Because the validation only rejects roles strictly higher than the requester's, the equal-role assignment slips through, silently promoting the Guest to Member and bypassing the requirement for Project Admin approval. No public exploit code is referenced; only the fixing PR diff is available. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 05, 2026
An authenticated Project Member (role 15) in Plane can escalate a Project Guest (role 5) to the Member role without Project Admin approval by sending a PATCH request to the project-member update endpoint at /api/workspaces/{workspace_slug}/projects/{project_id}/members/{member_pk}/. The role-update logic only rejected assignments where the new role exceeded the requester's own role, so submitting a role equal to the attacker's Member role slipped past the check and granted the guest Member-level project capabilities, bypassing project governance controls. This is a moderate-severity, authenticated privilege-escalation flaw (CWE-269) affecting Plane deployments prior to 1.4.0; no public exploit code was identified and the issue is not confirmed as actively exploited (CISA KEV).
RemediationAI
Upgrade Plane to version 1.4.0 or later, which contains the corrected role-check logic in the project-member update handler; the upstream fix is delivered through the v1.4.0 release (https://github.com/makeplane/plane/releases/tag/v1.4.0) and the referenced commit 4c1bdd1d625fa3f1141e8af9c15423946472069e / PR #9014, with details in advisory GHSA-x63v-p7wc-47x4 (https://github.com/makeplane/plane/security/advisories/GHSA-x63v-p7wc-47x4). If immediate upgrade is not possible, compensating controls include restricting membership-management actions to Project Admin (role 20) and Workspace Admin accounts by tightening API-layer authorization, limiting who can hold the Project Member (role 15) assignment, and reviewing audit trails for unexpected role changes on the member endpoint; note that these workarounds require custom code or gateway-level request filtering, which can break legitimate member-management workflows if applied too broadly, and they do not fully replicate the fixed behavior. As a lower-risk stopgap, teams can temporarily avoid assigning the role-15 Project Member privilege to users who should not be able to modify others' roles.
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 platform whose Django REST API (apps/api) enforces role-based access through numeric role constants: Project Guest (5), Project Member (15) and Project Admin (20), with a parallel workspace-role concept distinguishing workspace admins from regular members. In the vulnerable code path (apps/api/plane/app/views/project/member.py), the partial_update handler compared the new role against the requester's role and blocked only roles strictly higher than the requester's, so an attacker submitting the same Member role (15) passed validation. This is a classic CWE-269 improper privilege management / missing authorization-check defect: the endpoint performed insufficient validation of the role transition rather than enforcing a proper policy of who may promote whom. The upstream fix (PR #9014, commit 4c1bdd1d625fa3f1141e8af9c15423946472069e) refactors the handler to distinguish the target member's workspace role (used to cap the assignable project role) from the requester's workspace role (used to decide whether project-role checks may be bypassed), separating those two trust decisions. Per the CPE cpe:2.3:a:makeplane:plane:*:*:*:*:*:*:*:* all Plane versions up to but not including 1.4.0 are in scope.
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:L/I:L/A:N
Authenticated Member required (PR:L) over the network with low complexity; the direct effect is an unauthorized role change (I:L) with no direct confidentiality or availability loss.
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, a Project Member with role 15 can send a PATCH request to the project-member update endpoint at /api/workspaces/{workspace_slug}/projects/{project_id}/members/{member_pk}/ to change another user's project role. The role-update logic blocks only a new role higher than the requester's role, so assigning the equal Member role bypasses the insufficient validation and promotes a Project Guest with role 5 to Member without Project Admin approval. This unauthorized promotion grants the guest the additional project capabilities associated with the Member role and allows a regular member to bypass project governance controls. 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
Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.
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-92478
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB