Skip to main content

Plane EUVDEUVD-2026-92488

| CVE-2026-104966 HIGH
Authorization Bypass Through User-Controlled Key (CWE-639)
2026-10-05 GitHub_M
8.7
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate with low-privilege workspace account
  2. Delivery
    Identify target estimate_id or issue_id in another workspace
  3. Exploit
    Send PATCH/POST with mismatched URL scope
  4. Execution
    Primary-key fetch bypasses workspace/project check
  5. Impact
    Read or modify cross-tenant estimate / inject issue comment

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 a valid authenticated Plane account with legitimate membership in at least one workspace/project (ProjectEntityPermission passes for the URL-named workspace/project), plus knowledge or enumeration of a target estimate_id or issue_id belonging to a DIFFERENT workspace. The flaw exists because the write handlers (estimate PATCH and issue-comment POST) fetch nested resources by primary key without re-scoping to the workspace/project in the URL; the list, retrieve, and destroy handlers are correctly scoped and are NOT affected. Limiting factors: authentication is mandatory (not anonymous), the attacker must know/guess a valid foreign object ID, and all versions from 1.4.0 onward are patched. This affects multi-tenant or shared deployments; a single-tenant instance has no cross-workspace boundary to violate.

Impact

This is a genuine authorization flaw (CWE-639, Insecure Direct Object Reference / BOLA) in Plane, confirmed by the vendor GitHub Security Advisory GHSA-933r-rxg8-f3h2 and the fixing PR #9286. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:L) yields 8.7 (High), driven by network reachability, low complexity, and high confidentiality/integrity impact; the only mitigating base factor is PR:L, meaning a valid authenticated workspace account is required. No EPSS score, CISA KEV listing, or SSVC decision data was provided in the input, and no public exploit was supplied - so active-exploitation and automatability signals are absent and cannot be assumed. However, the source-code evidence shows the fix is a simple missing scope filter (objects fetched by primary key without workspace/project scoping), so exploitation is trivial for anyone with an account and knowledge of a target object ID - technical barrier is very low even though no weaponized exploit is cited. Net: a real priority for any multi-tenant/shared Plane deployment because cross-tenant read/modify of estimates and issue-comment injection breaks tenant isolation, but widespread opportunistic exploitation is unproven; the EPSS/KEV picture is simply missing rather than low.

Exploit ScenarioDerived

An authenticated user of one Plane workspace enumerates or guesses an estimate_id or issue_id belonging to a different workspace, then issues a PATCH to /api/workspaces/{slug}/projects/{project_id}/estimates/{estimate_id}/ to read or alter another tenant's estimates, or POSTs to the issues/{issue_id}/comments/ endpoint to inject comments into a foreign workspace's issue. No public exploit code was identified, but the attack requires only a standard HTTP client and a low-privilege account, and the published patch effectively reveals the exact unprotected endpoints.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 05, 2026

Authenticated cross-workspace access control bypass in Plane (makeplane/plane) before version 1.4.0 lets any user with a valid account in one workspace read and modify estimates, and inject comments into issues, belonging to a completely different workspace. The flaw is a CWE-639 (IDOR/BOLA) issue: the PATCH /api/workspaces/{slug}/projects/{project_id}/estimates/{estimate_id}/ and POST /api/workspaces/{slug}/projects/{project_id}/issues/{issue_id}/comments/ handlers resolve estimate_id and issue_id by primary key without re-verifying that those objects belong to the workspace and project named in the URL, even though ProjectEntityPermission validates the caller's membership in the URL-named scope. Exploitation requires authentication and knowledge or enumeration of a foreign object ID, and is confirmed by vendor advisory GHSA-933r-rxg8-f3h2 and fixing PR #9286; no public exploit code and no confirmed active exploitation were identified at time of analysis, though the CVSS 4.0 base score of 8.7 reflects high confidentiality and integrity impact (assessed as CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L).

RemediationAI

Upgrade to Plane 1.4.0 or later - this is the vendor-released patch that re-scopes the estimate and issue-comment write handlers to the URL's workspace and project (release: https://github.com/makeplane/plane/releases/tag/v1.4.0; advisory: https://github.com/makeplane/plane/security/advisories/GHSA-933r-rxg8-f3h2; fix commit 971c2aadb4e848d70676b4f58b94bc7992dfe5fc via PR #9286). If an immediate upgrade is not possible, compensating controls are limited because the vulnerable object identifiers are not secrets: restricting the deployment to a single workspace/tenant eliminates the cross-tenant boundary entirely, and network-level restriction of the API to trusted users or IP ranges reduces the pool of authenticated accounts able to enumerate foreign estimate and issue IDs, at the cost of breaking legitimate remote access. Temporarily blocking or rate-limiting PATCH requests to /api/projects/*/estimates/* and POST requests to /api/projects/*/issues/*/comments/ at a reverse proxy removes the vulnerable operations but degrades estimate editing and issue commenting for all users. Detection should focus on API logs where a single session issues requests that name a workspace slug in the URL while targeting object IDs that resolve to a different tenant, or where the pre-patch code returned 200 for an estimate_id/issue_id not visible in that workspace's list endpoints; because authentication is mandatory, reviewing and revoking stale or over-broad workspace memberships also reduces the attack surface.

Affected VersionsENISA

plane < 1.4.0

Affected Packages

euvd plane fix: 1.4.0

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 a multi-tenant open-source project management platform built on a Django REST Framework API, where every object is logically partitioned by workspace (workspace__slug) and project (project_id). The API is protected by a ProjectEntityPermission class that confirms the authenticated user is a member of the workspace and project referenced in the URL path, but that permission class only validates the URL parameters - it does not constrain the identity of nested resources referenced deeper in the path. In the write handlers for estimates and issue comments, the view code fetched Estimate, EstimatePoint, and Issue objects with a bare primary-key lookup (e.g., Estimate.objects.filter(pk=estimate_id).first() and EstimatePoint.objects.filter(pk=estimate_point_id).first()), so an attacker who supplies a valid foreign estimate_id or issue_id from another tenant satisfies the permission check for their own workspace while the query returns the victim tenant's row. The list, retrieve, and destroy handlers in the same viewsets already include workspace__slug=slug and project_id=project_id filters in their queries, which is why the vendor describes the defect as an internal inconsistency rather than a design-wide failure. The fix (PR #9286, commit 971c2aadb4e848d70676b4f58b94bc7992dfe5fc) adds workspace__slug and project_id predicates to those primary-key lookups and returns HTTP 404 'Estimate not found' / 'Estimate point not found' when the scoped object does not exist, making cross-tenant object references indistinguishable from nonexistent ones.

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

Vendor (GitHub_M) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:L/SC:N/SI:N/SA:N
vuln.today AI 8.3 HIGH

Network endpoint, low complexity, and only a basic authenticated account needed (PR:L, not PR:N) to cross tenant boundaries, giving high confidentiality and integrity impact with limited availability effect.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 05, 2026 - 18:02 EUVD
CVE Published
Oct 05, 2026 - 16:54 cve.org
HIGH 8.7

DescriptionCVE.org

Plane is an open-source project management tool. Prior to 1.4.0, two endpoint families fail to verify that nested resource identifiers belong to the workspace and project named in the URL. An authenticated user can read or modify estimates from another workspace through PATCH /api/workspaces/{slug}/projects/{project_id}/estimates/{estimate_id}/, and can inject comments into an issue from another workspace through POST /api/workspaces/{slug}/projects/{project_id}/issues/{issue_id}/comments/. ProjectEntityPermission verifies membership in the workspace and project from the URL, but estimate_id and issue_id are fetched by primary key without confirming the same scope. The list, retrieve, and destroy handlers correctly scope their queries, demonstrating the inconsistency. This issue is fixed in 1.4.0.

Technical POC Analysis

The bug class is CWE-639 (Authorization Bypass Through User-Controlled Key), i.e.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Plane, the open-source project and issue-tracking platform, contains a cross-workspace access control flaw that lets a user with an account in any single workspace read and modify estimates and post comments on issues belonging to entirely different workspaces on the same deployment. For organizations running Plane as a shared or multi-tenant instance - including self-hosted deployments serving multiple teams or external customers - this breaks the workspace boundary that customers and internal stakeholders assume protects their project and planning data. With no vendor patch currently available, leadership should treat workspace isolation as unreliable until remediation is deployed.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: isolate Plane deployments so mutually untrusted or customer-facing workspaces do not share a single instance; restrict account provisioning to vetted users and disable open self-registration; enforce network and IdP-level access controls; log, alert on, and rate-limit calls to the estimate and comment API handlers; and monitor for anomalous cross-workspace object ID access until the fixed Plane release (1.4.0 per vendor advisory / PR #9286) can be deployed.

Threat Intelligence Overview

EPSS Score
0.2%
Top 86% exploitable
Prevalence
Low
self-hosted open-source project management tool, modest production footprint
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

More in Plane

View all
CVE-2023-2268 HIGH POC
7.5 Jul 15

Plane version 0.7.1 allows an unauthenticated attacker to view all stored server files of all users. Rated high severity

CVE-2026-105636 CRITICAL
9.9 Oct 05

Authenticated users who can create a workspace in Plane can force the application's background worker to fetch internal-

CVE-2026-105641 CRITICAL
9.8 Oct 05

Unauthenticated remote attackers can forge Django-signed session cookies, CSRF tokens, and password-reset tokens, and by

CVE-2026-105639 CRITICAL
9.8 Oct 05

Workspace invitation hijacking in Plane prior to 1.4.0 lets an unauthenticated attacker take over a pending workspace in

CVE-2024-47830 MEDIUM POC
5.8 Oct 11

Plane is an open-source project management tool. Rated medium severity (CVSS 5.8), this vulnerability is remotely exploi

CVE-2026-105637 CRITICAL
9.6 Oct 05

Improper authorization in Plane before 1.4.0 lets an authenticated workspace Guest hijack file assets from other project

CVE-2026-105640 CRITICAL
9.1 Oct 05

Account takeover in Plane (makeplane) versions prior to 1.4.0 allows remote unauthenticated attackers to log in as exist

CVE-2026-105638 CRITICAL
9.1 Oct 05

Brute-forceable magic-code email login in Plane versions prior to 1.4.0 allows unauthenticated remote attackers to guess

CVE-2026-104976 HIGH
8.7 Oct 05

Server-side request forgery in Plane, the open-source project management tool, allows a low-privilege user of a connecte

CVE-2026-105632 HIGH
8.7 Oct 05

Plane prior to 1.4.0 allows an authenticated workspace member to bypass project-level authorization and join any project

CVE-2026-105630 HIGH
8.7 Oct 05

Stored cross-site scripting in Plane prior to 1.4.0 lets an authenticated low-privilege workspace member - including a G

CVE-2026-104979 HIGH
8.7 Oct 05

Stored cross-site scripting in Plane (versions up to and including 1.3.1) allows any authenticated user - including a br

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy