Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as project member
-
DeliveryStore crafted unsafe-scheme link in comment
-
ExploitVictim opens issue and clicks link
-
ExecutionScript executes in victim browser context
-
ImpactHijack 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
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
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.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.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
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.
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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
Cross-workspace authorization bypass in Plane (makeplane) prior to version 1.3.1 allows any authenticated user of one wo
Plane version 0.7.1 allows an unauthenticated attacker to view all stored server files of all users. Rated high severity
Authenticated users who can create a workspace in Plane can force the application's background worker to fetch internal-
Unauthenticated remote attackers can forge Django-signed session cookies, CSRF tokens, and password-reset tokens, and by
Workspace invitation hijacking in Plane prior to 1.4.0 lets an unauthenticated attacker take over a pending workspace in
Plane is an open-source project management tool. Rated medium severity (CVSS 5.8), this vulnerability is remotely exploi
Plane (makeplane/plane) through version 1.4.2 makes security decisions based on the client-supplied X-Forwarded-For head
Improper authorization in Plane before 1.4.0 lets an authenticated workspace Guest hijack file assets from other project
Account takeover in Plane (makeplane) versions prior to 1.4.0 allows remote unauthenticated attackers to log in as exist
Brute-forceable magic-code email login in Plane versions prior to 1.4.0 allows unauthenticated remote attackers to guess
Server-side request forgery in Plane, the open-source project management tool, allows a low-privilege user of a connecte
Authenticated cross-workspace access control bypass in Plane (makeplane/plane) before version 1.4.0 lets any user with a
EUVD-2026-98817
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB