Skip to main content

Plane EUVDEUVD-2026-98817

| CVE-2026-102982 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-10-13 GitHub_M
8.5
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as project member
  2. Delivery
    Store crafted unsafe-scheme link in comment
  3. Exploit
    Victim opens issue and clicks link
  4. Execution
    Script executes in victim browser context
  5. Impact
    Hijack session / act as victim

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

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

Exploitation Conditions

Requires an authenticated account with project-member privileges (PR:L) able to create a comment, and the ability to inject a link using an unsafe URL scheme (e.g. javascript:) into the comment_html field, which prior to version 1.4.0 was not sanitized for unsafe schemes. Exploitation is NOT self-triggering: a second user must open the affected issue and actively select/click the malicious link (UI:P / user interaction) for the script to execute in their browser context. Limiting factors: attacker must already hold legitimate project membership on the target instance, the payload only fires against users who click the crafted link, and instances running 1.4.0 or later are not affected. No special non-default server configuration is required - any pre-1.4.0 Plane instance with multiple users sharing projects is exposed.

Impact

This is a genuine but conditional threat, not a drive-by critical. The vendor CVSS 4.0 vector (CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:N, base 8.5) describes a network-reachable, low-complexity stored XSS, but two metrics materially cap real-world risk: PR:L means the attacker must already be an authenticated project member (an insider or someone with a foothold on an existing account), and UI:P means a victim must actively select/click the crafted link before the attacker-controlled script fires. So exploitation is not fully 'unattended' - it depends on a human target interacting with poisoned comment content. No EPSS score is provided in the input and the CVE is not listed in CISA KEV, so there is no evidence of active exploitation; exploitation status is best characterized as no public exploit identified at time of analysis. The strongest corroborating signal is the fix itself: the referenced PR #9287, commit 0d58adb, and the GHSA-6qrq-f73q-r67j advisory confirm the vulnerability is real and the root cause (failure to sanitize unsafe URL schemes such as javascript: in comment_html) is well understood. Net: treat this as a medium-priority patch for any multi-user Plane deployment - the VC:H/VI:H impact (session/account compromise in a victim's browser context) is serious, but the PR:L + UI:P prerequisites make it an insider/social-engineering vector rather than a mass-exploitable internet worm. Note the input provides no distinct POC or EPSS fields, so probability-of-exploitation cannot be quantified beyond the absence of KEV listing.

Exploit ScenarioDerived

An authenticated project member posts a comment on an issue containing a link whose href uses an unsafe scheme (e.g. javascript:) that Plane stores in comment_html without sanitization. When a teammate viewing the issue clicks that link, the attacker's script runs in the victim's authenticated browser session, enabling session/token theft or actions performed as the victim. No standalone public exploit is identified, but the patch diff (PR #9287) publicly reveals the exact vulnerable sanitization path.

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

Stored cross-site scripting in the Plane (makeplane) project management tool prior to version 1.4.0 allows an authenticated project member to plant a crafted link using an unsafe URL scheme, such as javascript:, inside a comment, which then executes in the browser context of any other user who selects that link. Exploitation is conditional rather than drive-by: the attacker must already hold legitimate project membership (PR:L) and a second user must actively click the injected link (UI:P/UI:R), which is why this is a genuine but conditional threat rather than a critical remote compromise. Vendor-released patch: 1.4.0; no public exploit code and no confirmation of active exploitation were identified at time of analysis, and EPSS risk data was not provided, so risk derives from the CVSS 4.0 base score of 8.5 and the high confidentiality and integrity impact within the affected web application scope.

RemediationAI

Upgrade Plane to version 1.4.0, which is the vendor-released patch that introduces the content_validator.validate_html_content() sanitizer across the comment and issue-description serializers and intake views; the fix commit is 0d58adb69d859fc94c43b9d68fadd77e810d5ed1 and the pull request is https://github.com/makeplane/plane/pull/9287, with the release at https://github.com/makeplane/plane/releases/tag/v1.4.0 and details in the advisory https://github.com/makeplane/plane/security/advisories/GHSA-6qrq-f73q-r67j. If immediate upgrade is not possible, apply targeted compensating controls: restrict project membership and comment creation on the exposed pre-1.4.0 instances to trusted users only, since the flaw requires an already-authenticated project member to plant the payload (this reduces the attack surface but does not eliminate the stored-payload risk from insiders or compromised member accounts); audit and purge existing comment_html and description_html content for anchors with javascript:, data:, or vbscript: schemes and remove them directly in the database (side effect: manual data editing is error-prone and bypasses application-level audit trails); and deploy a Content-Security-Policy that omits unsafe-inline/unsafe-eval for the Plane origin to blunt script execution from injected links (trade-off: strict CSP can break legitimate rich-text or embedded-content features and must be tested against the Plane UI before enforcement). Note that CPE coverage and the patch evidence point only to Plane itself, so no upstream library mitigation substitutes for the 1.4.0 upgrade; the sanitizer must be in place because the vulnerable behavior is in Plane's own request handling, not in a replaceable dependency.

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

The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation, i.e. cross-site scripting), specifically the stored variant. Plane persists rich comment content in a field named comment_html, and before 1.4.0 the API serializers accepted that HTML after a weak normalization step that used lxml's html.fromstring()/html.tostring() to re-serialize the markup. That operation validates that the input parses as HTML but performs no allow-list filtering of elements, attributes, or URL schemes, so an anchor whose href is javascript: (or another unsafe scheme) survived round-tripping and was stored and later rendered to other users. When a victim selects the link, the scheme is executed in the victim's session context, giving script execution that can act on the application as the victim. The upstream fix in PR 9287 replaces the ad-hoc parsing with a dedicated plane.utils.content_validator.validate_html_content() helper that returns a validity flag and a sanitized HTML string, and wires it into the API comment serializer (apps/api/plane/api/serializers/issue.py), the application issue serializer (apps/api/plane/app/serializers/issue.py), and the intake create views (apps/api/plane/api/views/intake.py and apps/api/plane/space/views/intake.py), where description_html is now sanitized before being persisted alongside the comment handling. The CPE cpe:2.3:a:makeplane:plane:*:*:*:*:*:*:*:* denotes all released versions of the open-source makeplane/plane application prior to the fixed release, and the code evidence shows the defect spanned both the API and Space/intake surfaces rather than a single endpoint.

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.5 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
vuln.today AI 8.7 HIGH

Authenticated project member (PR:L) stores the payload but a victim must click the link (UI:R); script runs in the victim's browser, crossing a trust boundary (S:C) with high confidentiality/integrity impact and no availability effect.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:P/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
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
Passive
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 13, 2026 - 17:03 EUVD
CVE Published
Oct 13, 2026 - 15:32 cve.org
HIGH 8.5

DescriptionCVE.org

Plane is an open-source project management tool. Prior to 1.4.0, the plane comments fail to sanitize unsafe URL schemes stored in comment_html. A project member can store a crafted link in a comment, and attacker-controlled script executes in the browser context of another user who selects the link. This issue is fixed in version 1.4.0.

Technical POC Analysis

CWE-79 (stored cross-site scripting).

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

A stored cross-site scripting flaw in the Plane (makeplane) project management tool affects versions prior to 1.4.0 and allows an existing project member to plant a malicious link in a comment that executes in the browser of any colleague who clicks it, enabling session or credential theft and unauthorized actions under the victim's identity. The exposure is conditional rather than automatic - the attacker must already hold legitimate project membership (authenticated, PR:L) and a second user must actively click the injected link (UI:P/UI:R) - so this is a targeted, insider-style risk rather than a broad opportunistic compromise. Leadership should care because the trust boundary being abused is internal collaboration: every team, guest, and partner sharing a Plane workspace inherits the risk, and no public exploit code or confirmed active exploitation was identified at time of analysis.

Business Impact: High
Compensating Controls

Apply vendor patch (Plane 1.4.0 or later). Where immediate upgrade is not possible, enforce a Content-Security-Policy that blocks javascript: and other unsafe URL schemes, restrict project membership to vetted internal users, disable or closely monitor externally shared workspaces, and reset sessions for any user who may have clicked an injected link.

Threat Intelligence Overview

EPSS Score
0.4%
Top 73% exploitable
Prevalence
Medium
popular self-hosted open-source project management tool, not universally deployed
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.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

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

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

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