Skip to main content

Plane EUVDEUVD-2026-92483

| CVE-2026-104962 MEDIUM
Missing Authorization (CWE-862)
2026-10-05 GitHub_M
6.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as low-privilege workspace member (e.g. Guest)
  2. Delivery
    Enumerate foreign private project IDs in workspace
  3. Exploit
    GET the target project's members endpoint
  4. Execution
    Receive full member roster
  5. Impact
    Harvest emails and names for phishing or reconnaissance

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
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

Requires a valid authenticated account that is an active ProjectMember of at least one project in the target workspace - any role suffices, including Guest - because the flawed SAFE_METHODS check only verified workspace-scoped project membership. The attacker must supply the project_id of a foreign private project in the same workspace (known or enumerated). Limiting factors: it is NOT exploitable by fully unauthenticated external users, cross-workspace access is not implied, and only versions prior to 1.4.0 are affected; impact is read-only disclosure of member roster PII with no write or availability effect.

Impact

This is a broken-access-control information disclosure (CWE-862) with a confirmed, source-code-level root cause: the SAFE_METHODS branch of ProjectMemberPermission checked only for active workspace-level project membership and never bound the check to view.project_id, while the view filtered only by the URL-supplied project_id. The provided CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N = 6.5) is internally consistent with the description - network-reachable REST endpoint, low attack complexity, and a low-privileged authenticated caller (explicitly including Guest role). No EPSS score, no CISA KEV listing, and no public exploit were provided in the intelligence; absence of those signals should not be read as low risk, but nothing here indicates active exploitation. The real-world severity is moderate and bounded: the impact is confined to confidentiality of project-member roster metadata (emails, names, display names, avatars, roles) rather than code execution, data modification, or credential exposure, so I assess the confidentiality impact as Low rather than High (see assessed vectors). Net: a legitimate but not urgent priority - a credible internal-threat/PII-leak issue in self-hosted deployments, not a high-CVSS-but-no-real-risk false alarm, yet also not an externally wormable RCE. Note the one data discrepancy: the technique tag labels this an 'Authentication Bypass,' but it is an authorization/access-control failure (CWE-862) - authentication is still required.

Exploit ScenarioDerived

An authenticated workspace user with only Guest access to a single project enumerates or already knows the project_id of a different private project in the same workspace and issues GET /api/v1/workspaces/{slug}/projects/{project_id}/members/. The server returns that private project's complete member roster - emails, first/last names, display names, avatars, and roles - despite the caller never being a member. No public exploit was identified at time of analysis, but the vendor advisory and patch diff fully document the flaw, making reproduction trivial.

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 05, 2026

Plane's project member roster API (GET /api/v1/workspaces/{slug}/projects/{project_id}/members/) leaks the full membership list of a private project - including each member's email address, name, display name, avatar, and role - to any authenticated user who belongs to at least one project in the same workspace, including a Guest. The flaw is in the DRF permission class ProjectMemberPermission, whose SAFE_METHODS branch validated only workspace-scoped project membership without binding the check to the requested project_id, while the view filtered records solely on the URL-supplied project_id. Only Plane versions prior to 1.4.0 are affected, no public exploit code has been identified at time of analysis, and the impact is read-only disclosure of member PII (personally identifiable information) with no write or availability effect; an attacker must already hold a valid account and know or enumerate the target project's ID.

RemediationAI

Upgrade to Plane 1.4.0, which is the vendor-released fix containing commit 5842ca8bf2b984b81c45bf58148a39b348a8995e (PR #9375) and scopes the SAFE_METHODS authorization check to the requested project_id; the release is available at https://github.com/makeplane/plane/releases/tag/v1.4.0 and the advisory is https://github.com/makeplane/plane/security/advisories/GHSA-w2vf-m9x9-mvmc. Because the prerequisite is that the attacker holds a valid account and is an active member of at least one project in the target workspace (any role, including Guest), the most effective compensating control if immediate upgrade is not possible is to audit workspace membership and remove or downgrade untrusted users so they belong to no project within workspaces that contain private projects - the trade-off is that legitimate Guests lose visibility into the projects they were meant to collaborate on. Where the roster data is sensitive, restrict network access to the API (for example, place the Plane API behind an authenticating reverse proxy or IP allowlist that only serves trusted internal clients), accepting that this also blocks legitimate external integrations. Additionally, since the flaw is a read-only information disclosure with no write or availability impact, monitoring rather than blocking may be acceptable in low-sensitivity tenants; log GET requests to /api/v1/workspaces/*/projects/*/members/ and /api/workspaces/*/projects/*/project-deploy-boards/ and alert on callers whose project membership does not match the project_id in the path, since such requests are the direct signature of exploitation. Note the disclosure itself cannot be undone by patching: email addresses and names already exfiltrated from affected instances must be treated as exposed PII (personally identifiable information) and handled under the organization's privacy-incident process.

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 an open-source project management tool built on Django and Django REST Framework. The affected endpoint is served by ProjectMemberListCreateAPIEndpoint (v1) and protected by the custom permission class ProjectMemberPermission defined in apps/api/plane/app/permissions/project.py. That class routes safe HTTP methods (GET, HEAD, OPTIONS) through a SAFE_METHODS branch, which queried ProjectMember rows filtered by workspace__slug and member=request.user with is_active=True, but omitted project_id=view.project_id. Because the Object-Level and view-level queryset then filtered only on the project_id taken from the URL, the authorization decision and the data-retrieval decision were scoped to two different objects, producing a horizontal privilege-escalation gap classified as CWE-862 (Missing Authorization). The upstream fix (PR #9375, commit 5842ca8bf2b984b81c45bf58148a39b348a8995e) adds project_id=view.project_id to the SAFE_METHODS query, so a caller who is not an active member of the specific project receives HTTP 403. Accompanying contract tests (test_project_members_roster_scope.py and the app-side sibling test_deploy_board_project_scope_app.py) confirm the same permission class was also used by DeployBoardViewSet, which exposes a project's publish configuration and is fixed by the same change. The root cause class is a classic authorization-scope mismatch rather than an injection, memory-safety, or cryptographic weakness.

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 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

Network REST endpoint (AV:N), no special conditions (AC:L), requires an authenticated low-privilege member including Guest (PR:L), no UI; only bounded roster PII is exposed so C:L, with no integrity or availability impact.

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_M).

CVSS VectorVendor: GitHub_M

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 05, 2026 - 18:02 EUVD

DescriptionCVE.org

Plane is an open-source project management tool. Prior to 1.4.0, GET /api/v1/workspaces/{slug}/projects/{project_id}/members/ returns the complete project-member roster, including each member's email address, first and last name, display name, avatar, and role. ProjectMemberPermission gates the endpoint, but its SAFE_METHODS branch checks only whether the caller is an active ProjectMember of any project in the workspace and does not bind the check to view.project_id. The view then filters solely by the project_id supplied in the URL. Consequently, any authenticated user who belongs to one project in a workspace, including a Guest, can read the roster of another private project in the same workspace. This issue is fixed in 1.4.0.

Threat Intelligence Overview

EPSS Score
0.3%
Top 79% exploitable
Prevalence
Low
self-hosted open-source project management tool, modest production footprint
Data Quality
4 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 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.

More in Plane

View all
CVE-2026-46558 HIGH POC
8.3 Jun 10

Cross-workspace authorization bypass in Plane (makeplane) prior to version 1.3.1 allows any authenticated user of one wo

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-111869 MEDIUM POC
5.5 Oct 18

Plane (makeplane/plane) through version 1.4.2 makes security decisions based on the client-supplied X-Forwarded-For head

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-104966 HIGH
8.7 Oct 05

Authenticated cross-workspace access control bypass in Plane (makeplane/plane) before version 1.4.0 lets any user with a

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