Skip to main content

Plane EUVDEUVD-2026-101617

| CVE-2026-102980 MEDIUM
Authorization Bypass Through User-Controlled Key (CWE-639)
2026-10-14 security-advisories@github.com
6.5
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as member of one project
  2. Exploit
    Request page-version with own project_id but another project's page_id
  3. Impact
    Read leaked description_html cross-project

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

Exploitation requires the attacker to be an authenticated, active member of at least one project in the target workspace (PR:L) and to know or enumerate the page_id of a target page in a different project within that same workspace. The target page must have public access, and the deployment must host multiple projects under one workspace for the cross-project boundary to be crossable. Limiting factors: no anonymous access (valid workspace/project membership needed), the leak is read-only (no modification of cross-project pages), disclosure is confined to the same workspace and to public-access pages only, and only description_html content is exposed - not private pages or other projects' data outside the shared workspace.

Impact

This is a cross-project authorization flaw (IDOR, CWE-639) in Plane's PageVersionEndpoint where page-version lookups are scoped by workspace and page_id but not by the URL project_id, letting a member of one project read the description_html of public pages belonging to a different project in the same workspace. The provided CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N, 6.5 MEDIUM) correctly reflects a network-reachable, low-complexity bug requiring authenticated project membership and yielding only a confidentiality impact - integrity and availability are explicitly unaffected because the path is read-only and cannot modify cross-project pages. No EPSS score, CISA KEV entry, POC, or SSVC decision data was supplied, so there is no public exploit identified at time of analysis and no evidence of active exploitation; the risk signals are therefore limited to the CVSS vector and the published fix. I assess the C:H rating as arguably overstated: disclosure is bounded to page description_html of public-access pages within a single shared workspace, which is partial rather than total confidentiality loss, so real-world impact is closer to C:L - verify sensitivity against your own page content. Net: a legitimate multi-tenant data-isolation bug worth patching, but not an emergency given authenticated prerequisites, read-only scope, and absence of any exploitation or POC signal.

Exploit ScenarioDerived

An authenticated user who is a member of only Project A within a shared workspace crafts a request to the page-versions endpoint using Project A's identifier in the URL while supplying the page_id of a public page that belongs to Project B. Because the permission check derives the caller's role from the URL project but resolves the page workspace-wide, the endpoint returns Project B's page version content (description_html), disclosing data the user should not see. No public exploit code is identified at time of analysis, but the attack requires only a normal API request and no special tooling.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 14, 2026

Cross-project information disclosure in Plane (open-source project management tool) before version 1.4.0 lets an authenticated member of one project read the description_html of public page versions belonging to a different project within the same workspace. The PageVersionEndpoint resolves page versions by workspace and page_id only, so supplying another project's identifier in the URL bypasses the intended project boundary - the check that the caller belongs to the URL project passes, but the object lookup ignores that project. The issue is read-only (no cross-project modification), requires active membership in at least one project of the target workspace and knowledge of the target page_id, and no public exploit code has been identified at time of analysis.

RemediationAI

Upgrade to Plane 1.4.0 or later, which is the vendor-released patch for this issue (changelog: https://github.com/makeplane/plane/releases/tag/v1.4.0). If an immediate upgrade is not possible, apply the upstream commit cfe951c8af41b0fcf1c792e5ad664d00f77709ce (PR #9380, https://github.com/makeplane/plane/pull/9380) to the PageVersionEndpoint and ProjectPagePermission so lookups are scoped by project_pages__project_id and project_pages__deleted_at__isnull=True; the same commit adds regression tests and can be backported to maintained branches. Compensating controls while unpatched: audit and reduce the number of workspaces that host multiple projects with cross-project membership (segregating projects into separate workspaces removes the boundary that can be crossed, at the cost of losing shared workspace features), and audit public-access pages via the Page.access field and restrict pages to private access where the content is sensitive (side effect: legitimate cross-team page sharing stops working). Because the flaw is read-only and limited to description_html of public pages within the same workspace, rate-limiting or monitoring of GET requests to /api/workspaces/*/projects/*/pages/*/versions/ can help detect enumeration attempts, but does not remediate the underlying authorization gap. Do not rely on disabling the endpoint entirely unless the trade-off of losing page-version history is acceptable.

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

CVE-2026-102980 is a classic Insecure Direct Object Reference / horizontal authorization defect (CWE-639) in Plane's Django REST Framework API. Two code paths were inconsistently scoped: ProjectPagePermission correctly derived the caller's role and membership from the project_id embedded in the URL, but PageVersionEndpoint in apps/api/plane/app/views/page/version.py and the page-resolution logic in apps/api/plane/app/permissions/page.py looked up Page and PageVersion objects using only workspace__slug and page_id. Because pages are linked to projects through the ProjectPage join table (a public page can be shared across visibility scopes within a workspace), a member of project A could hit /api/workspaces/{slug}/projects/{A}/pages/{page_id_of_B}/versions/ and have the permission class validate membership against project A while the queryset returned project B's page versions. The upstream fix (commit cfe951c8af41b0fcf1c792e5ad664d00f77709ce, PR 9380) adds a filter on page__project_pages__project_id equal to the URL project_id combined with project_pages__deleted_at__isnull=True, so only an active ProjectPage link for the requested project satisfies the query; a distinct() guard is added defensively because the join could otherwise produce MultipleObjectsReturned and a 500. Contract regression tests were added in test_page_version_project_scope_app.py.

Know when the next one hits your stack

  • 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) PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 4.3 MEDIUM

Authenticated project member over the API (PR:L, AV:N, AC:L, UI:N); read-only partial disclosure of public page description_html only, so C:L and I/A:N.

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

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

1
Patch available
Oct 14, 2026 - 21:18 EUVD

DescriptionCVE.org

Plane is an open-source project management tool. Prior to 1.4.0, PageVersionEndpoint in apps/api/plane/app/views/page/version.py scopes page-version lookups by workspace and page identifiers but not by the project_id from the URL. ProjectPagePermission likewise derives the caller's role from the URL project while resolving the requested page workspace-wide, so a member of one project can use that project's identifier to read description_html for a public page in another project in the same workspace. The affected path is read-only and does not enable cross-project page modification. This issue is fixed in version 1.4.0.

Threat Intelligence Overview

EPSS Score
0.3%
Top 78% exploitable
Prevalence
Medium
popular self-hosted open-source project management tool, moderate production footprint
Data Quality
5 sources
Confidence: Medium
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
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.

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