Skip to main content

Plane EUVDEUVD-2026-92700

| CVE-2026-105635 HIGH
Information Exposure (CWE-200)
2026-10-05 GitHub_M
7.4
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Obtain pending invitation UUID
  2. Delivery
    Query public join GET endpoint unauthenticated
  3. Exploit
    Harvest invitee email, role, and token
  4. Execution
    Register account using invited email
  5. Impact
    POST accept invite, gain project membership

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK

2 techniques across 2 tactics: Collection, Discovery

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The attacker must know (or obtain) the UUID 'pk' of a pending ProjectMemberInvite record for a target project in Plane < 1.4.0 - this is the primary prerequisite and the reason complexity is High rather than Low, since UUIDs are not enumerable by default. Given a valid invite UUID, no authentication is required (the GET endpoint uses permission_classes=[AllowAny]) and it works against default configurations: the GET leaks the invitee email, role, and acceptance token, and the POST accept path validates only that the submitted email matches project_invite.email while failing to validate the invitation token. Limiting factors: exploitation is bounded to projects that currently have outstanding (unaccepted) invitations whose UUIDs the attacker can reference, and the attacker must be able to register an account with the disclosed email address.

Impact

Signals are moderately consistent and point to a genuine but condition-gated risk. The provided CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N, base 7.4 High) correctly captures that the GET endpoint is unauthenticated (PR:N via AllowAny) and network-reachable, but rates complexity High (AC:H) - which is appropriate because exploitation hinges on the attacker first knowing the invitation's UUID (the pk), a value that is not enumerable by default. No EPSS score, SSVC decision, or KEV entry was supplied in the input, and there is no POC flag, so exploitation status is: no public exploit identified at time of analysis. The only exploitation evidence is the vendor fix (PR #9305, commit 4b52dce, release v1.4.0) confirming the flaw and its mechanics. This is a real, authentic priority for anyone running self-hosted Plane < 1.4.0 - the vulnerability is confirmed by the vendor's own security advisory (GHSA-2r58-hgv7-635q) and the leaked email+token enables invitation hijacking - but it is not a mass-exploitable internet-worm scenario because the attacker must already possess a valid invite UUID. Missing data to note explicitly: no EPSS/KEV/SSVC were provided, so widespread-exploitation likelihood cannot be quantified from the input; absence of these is not evidence of low risk, only of unmeasured risk.

Exploit ScenarioDerived

An attacker who has learned or guessed a pending project-invite UUID (e.g., from a leaked/forwarded invite link, logs, or referrer) calls the unauthenticated GET /api/workspaces/{slug}/projects/{project_id}/join/{pk}/ endpoint and reads back the invitee's email, role, and acceptance token. They then register a new account using that disclosed email and POST to the join endpoint, which validates only the email match and not the token, letting them accept the invitation and join the target project with the intended role. No public exploit code was identified, but the vendor's patch diff fully documents the flaw mechanics.

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

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

Alert me

AnalysisAIv1 – Oct 05, 2026

Unauthenticated information disclosure and invitation bypass in Plane (makeplane) before 1.4.0: the GET join endpoint returns the complete ProjectMemberInvite object - invitee email, role, and acceptance token - to anonymous callers, and the companion POST accept endpoint validates only that the submitted email matches the stored invite, never the token. An attacker who knows a pending invitation's UUID can therefore learn the invited email address, register an account with it, and join the target project as the intended invitee. The primary prerequisite is possession of a non-enumerable invitation UUID, which is why complexity is rated High; no public exploit identified at time of analysis, and the issue is fixed in 1.4.0.

RemediationAI

Upgrade Plane to 1.4.0 or later (https://github.com/makeplane/plane/releases/tag/v1.4.0), which shipped the fix from PR 9305 / commit 4b52dce76e8aa97a8d87166fa8f4441c1cf646b1 that replaces the full invite serializer with ProjectMemberInvitePublicSerializer on the public GET join endpoint; vendor-released patch: 1.4.0. If immediate upgrade is not possible, apply compensating controls with awareness of their trade-offs: block or gate anonymous access to the /api/workspaces/*/projects/*/join/* paths at the reverse proxy or WAF so only authenticated sessions reach them - this stops the disclosure but also breaks the normal emailed-invite acceptance flow for unauthenticated users, so invites must then be accepted from within an already-authenticated session; audit and revoke outstanding pending ProjectMemberInvite rows (deleting or expiring unaccepted invitations) so no discoverable UUIDs remain, at the cost of requiring legitimately invited users to be re-invited; and restrict visibility of invitation UUIDs and project invite listings to project admins only. Monitor project membership changes and unexpected account registrations matching disclosed invite emails, since the POST path cannot be patched at the data layer. See the vendor advisory at https://github.com/makeplane/plane/security/advisories/GHSA-2r58-hgv7-635q for the authoritative fix details.

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 platform whose backend is a Django REST Framework API (apps/api/plane/app). The vulnerability class is CWE-200, exposure of sensitive information to an unauthorized actor, and it arises from an over-permissive serializer combined with a missing authorization check on a state-changing request. The GET handler for /api/workspaces/{slug}/projects/{project_id}/join/{pk}/ was declared with permission_classes = [AllowAny] and serialized the ProjectMemberInvite model using the same full ProjectMemberInviteSerializer used internally, so fields such as email, token, and role were emitted to any unauthenticated caller. The POST accept path had a separate logic flaw: it confirmed only that the submitted email equaled project_invite.email and never compared the submitted or stored invitation token, effectively making the leaked email sufficient to complete the join. The upstream fix (PR 9305, commit 4b52dce76e8aa97a8d87166fa8f4441c1cf646b1) introduces ProjectMemberInvitePublicSerializer, a read-only serializer that intentionally omits the email and token fields and exposes only id, project, workspace, role, message, accepted, and responded_at, and rebinds the GET view to that serializer.

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 7.4 HIGH
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
vuln.today AI 7.4 HIGH

Unauthenticated network endpoint (PR:N/AV:N) but requires knowing a non-enumerable invite UUID (AC:H); leaked email/token gives C:H and invite hijack yields unauthorized project membership (I:H), no availability impact.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

2
Patch available
Oct 05, 2026 - 20:17 EUVD
CVE Published
Oct 05, 2026 - 18:01 cve.org
HIGH 7.4

DescriptionCVE.org

Plane is an open-source project management tool. Prior to 1.4.0, ProjectJoinEndpoint at GET /api/workspaces/{slug}/projects/{project_id}/join/{pk}/ uses permission_classes = [AllowAny] and returns the full ProjectMemberInvite record, including its email, token, and role, to unauthenticated callers. The corresponding POST endpoint checks only whether the submitted email matches project_invite.email and does not validate the invitation token. An attacker who knows the invitation UUID can discover the invited email, register an account with that email, and accept the invitation without receiving the original invite. This issue is fixed in 1.4.0.

Technical POC Analysis

Evidence basis: GHSA-2r58-hgv7-635q (advisory, includes vulnerable code and curl PoC).

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 (makeplane) instances running versions earlier than 1.4.0 expose pending project invitations to anonymous callers and allow anyone who knows an invitation's UUID to join the target project as the intended invitee, producing unauthorized membership and access to project content. Organizations that use Plane for internal project and issue tracking therefore face a direct access-control gap that can quietly place an attacker-controlled account inside sensitive workspaces. Leadership should care because the consequence is unauthorized project membership, not merely a data leak.

Business Impact: High
Compensating Controls

Apply vendor patch: 1.4.0. Where immediate upgrade is not possible, block or restrict external access to the invitation join endpoints at the reverse proxy/WAF, expire or cancel outstanding pending invitations to invalidate known UUIDs, require SSO and restrict invitations to approved email domains, and monitor for anonymous join-endpoint requests and new accounts registering with invited addresses.

Threat Intelligence Overview

EPSS Score
0.4%
Top 63% exploitable
Prevalence
Medium
popular self-hosted open-source project tool, not everywhere
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 HIGH
CISA KEV No
Public POC No
EPSS 0.4%
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
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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