Skip to main content

Plane CVE-2026-105641

| EUVDEUVD-2026-92597 CRITICAL
Use of Hard-coded Credentials (CWE-798)
2026-10-05 GitHub_M
9.8
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Locate internet-exposed Plane community deployment
  2. Delivery
    Read publicly-known default SECRET_KEY/LIVE_SERVER_SECRET_KEY
  3. Exploit
    Forge Django-signed session or reset token
  4. Execution
    Bypass live-service auth and authenticate as admin
  5. Impact
    Compromise accounts, sessions, and project data

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Credential externalization
MITRE ATT&CK

2 techniques across 2 tactics: Persistence, Credential Access

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

Exploitation Conditions

Exploitation requires that the target was deployed using the deployments/aio/community/ or deployments/cli/community/ manifests AND that the operator never overrode the shipped SECRET_KEY (default '60gp0byfz2dvffa45cxl20p1scy9xbpf6d8c5y0geejgkyp1b5') or LIVE_SERVER_SECRET_KEY (default 'htbqvBJAgpm9bzvf3r4urJer0ENReatceh'). The top-level setup.sh randomizes secrets ONLY for the development Docker Compose path, so aio/cli community installs retain the shared production secrets by default. Limiting factors that reduce real-world exposure: instances deployed via the dev Compose path, instances where an operator explicitly set unique secrets, and instances upgraded to 1.4.0 (which auto-generates and persists a random key on first boot) are NOT exploitable; reachability also requires the instance to be network-accessible to the attacker.

Impact

All exploitability signals point in the same direction and reinforce a genuinely high priority for the affected population. The supplied CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N) describes a network-reachable, low-complexity, unauthenticated flaw, and CWE-798 (use of hard-coded credentials) makes that plausible because the SECRET_KEY and LIVE_SERVER_SECRET_KEY defaults are literally published in the shipped manifests and now visible in the fix commit/diff - anyone can read them without research effort, which justifies AC:L. However, the raw 9.8 overstates the UNIVERSAL risk: exploitation is strictly conditional on the operator having deployed the aio or cli community manifests AND never overriding the secrets, so this behaves less like a blanket remote RCE and more like an insecure-default that silently affects a subset of self-hosted instances. No EPSS score, KEV listing, or SSVC decision data was provided in the input, so automatable/technical-impact framing cannot be derived; their ABSENCE is not evidence of low risk, only missing telemetry. The 'source code evidence' is the vendor patch diff, NOT a weaponized exploit, so this is not confirmed active exploitation. Net: a real, high-priority issue for anyone running unmodified Plane community Docker deployments, but the real-world blast radius is gated by configuration rather than being every Plane install.

Exploit ScenarioDerived

An attacker identifies an internet-reachable Plane instance that was stood up from the deployments/aio/community/ or deployments/cli/community/ manifests, then uses the publicly-known default SECRET_KEY to forge a Django-signed session or token (e.g. a password-reset or auth cookie) and authenticates as an existing user or administrator. Separately, the known LIVE_SERVER_SECRET_KEY lets the attacker bypass live-service authentication on the same unchanged deployment. No public proof-of-concept exploit was provided - the GitHub source evidence is the remediation patch, not attack code.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.5% 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 remote attackers can forge Django-signed session cookies, CSRF tokens, and password-reset tokens, and bypass live-service authentication, against Plane installations that shipped with publicly known default secrets. Plane versions prior to 1.4.0 distributed fixed SECRET_KEY (60gp0byfz2dvffa45cxl20p1scy9xbpf6d8c5y0geejgkyp1b5) and LIVE_SERVER_SECRET_KEY (htbqvBJAgpm9bzvf3r4urJer0ENReatceh) values in the deployments/aio/community/ and deployments/cli/community/ manifests, while the top-level setup.sh randomized secrets only for the development Docker Compose path, leaving AIO and CLI community deployments with shared production secrets by default. Rated CVSS 9.8 (AV:N/AC:L/PR:N/UI:N, C/I/A:H) and classified CWE-798; no public exploit identified at time of analysis, although the default key values are published in the vendor repository and are therefore trivially usable by anyone who reads it. Exposure is limited to network-reachable instances deployed via those community manifests whose operators never overrode the secrets; deployments created through the development Compose path, operator-hardened installs with unique secrets, and instances upgraded to 1.4.0 are not exploitable.

RemediationAI

Vendor-released patch: 1.4.0 - upgrade to Plane v1.4.0 (https://github.com/makeplane/plane/releases/tag/v1.4.0), which corresponds to the fix merged in pull request https://github.com/makeplane/plane/pull/9291 (commit https://github.com/makeplane/plane/commit/1acc69e816a9a8789032bf711aa9a3c12fcd285c) and per vendor advisory GHSA-cmwv-pjmw-8483; on first boot the patched start.sh auto-generates and persists random SECRET_KEY and LIVE_SERVER_SECRET_KEY values, and common.py emits a critical log if a known insecure or placeholder value is detected, so monitor logs for that warning to confirm the environment is clean. If immediate upgrade is not possible, the primary compensating control is to set unique high-entropy values for both SECRET_KEY and LIVE_SERVER_SECRET_KEY in the deployment's plane.env / variables.env (for example openssl rand -hex 32 or python3 -c "from django.utils.crypto import get_random_secret_key; print(get_random_secret_key())") and restart the affected containers, since the flaw is exploitable only while the public defaults remain in place; the trade-off is that rotating SECRET_KEY invalidates all existing Django sessions, signed cookies, pending password-reset links, and any other Django-signed data, forcing every user to re-authenticate. A short-term containment option is to restrict network access to the Plane web and live-service endpoints (reverse-proxy allowlists or VPN-only exposure), which reduces reachability but does not remove the underlying weakness and can disrupt legitimate remote users. Until the secrets are rotated or the upgrade is applied, treat authentication and session integrity on the affected deployment as untrusted.

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-798 (Use of Hard-coded Credentials) in Docker deployment manifests rather than in application logic per se. Django's SECRET_KEY is the master cryptographic salt used by django.core.signing for signing session cookies, CSRF tokens, password-reset tokens, and other signed values; if it is known, an attacker can compute valid HMAC signatures offline and mint arbitrary authenticated sessions or privileged tokens without ever knowing a password. LIVE_SERVER_SECRET_KEY separately authenticates the Plane live-service (real-time collaboration) tier, so its disclosure allows unauthenticated access to that service on unchanged community deployments. Because the AIO and CLI community manifests shipped literal default values, every unmodified install derived from those templates shares the same secrets, making exploitation a matter of copying the published string rather than brute force. The vendor fix (apps/api/plane/settings/common.py in pull request #9291) switches SECRET_KEY resolution to os.environ.get("SECRET_KEY") or get_random_secret_key() so an explicitly empty variable is treated as unset, and adds a critical log when the key equals the old public default or the 'change-this-key-on-deployment' placeholder; start.sh now generates or restores a persisted random key on first boot, the variables.env templates were reduced to placeholders, and deployments/cli/community/docker-compose.yml dropped its ${VAR:-default} fallbacks so a missing secret fails loudly instead of silently defaulting to a public value. The CPE cpe:2.3:a:makeplane:plane:*:*:*:*:*:*:*:* covers all Plane releases at the CPE level, with 1.4.0 as the first fixed version.

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

Publicly-published default keys give AC:L and PR:N over the network (AV:N); forging admin sessions yields full account takeover, so C/I/A all High.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

2
Patch available
Oct 05, 2026 - 20:17 EUVD
CVE Published
Oct 05, 2026 - 18:12 cve.org
CRITICAL 9.8

DescriptionCVE.org

Plane is an open-source project management tool. Prior to 1.4.0, the deployments/aio/community/ and deployments/cli/community/ manifests provide fixed, publicly known SECRET_KEY and LIVE_SERVER_SECRET_KEY defaults that remain active when operators do not override them. The top-level setup.sh randomizes secrets only for the development Docker Compose path, leaving unchanged aio and cli community deployments with shared production secrets. Knowledge of SECRET_KEY enables attackers to forge Django-signed values and compromise accounts or sessions. Knowledge of LIVE_SERVER_SECRET_KEY bypasses live-service authentication on unchanged community deployments. This issue is fixed in 1.4.0.

Technical POC Analysis

CWE-798: Use of Hard-coded Credentials.

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, the project management platform, shipped fixed, publicly documented secret keys in its AIO and CLI community deployment manifests, meaning any network-reachable instance built from those defaults can be impersonated by an unauthenticated attacker who simply reads the public repository. This undermines the platform's core access controls: session cookies, CSRF protections, and password-reset tokens can be forged, giving an intruder the identity and privileges of legitimate users and full read/write access to the project, roadmap, and issue data those users can reach. Leadership should treat this as a trust and data-integrity exposure rather than a routine bug, because the affected instances are production-facing and the default secrets cannot be fixed by configuration alone.

Business Impact: Severe
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: replace the shipped default SECRET_KEY and LIVE_SERVER_SECRET_KEY with unique, high-entropy values on every affected instance; invalidate all existing sessions and password-reset/CSRF tokens after rotation; limit network exposure of AIO/CLI community deployments to trusted networks or VPN; and monitor authentication and audit logs for forged-token activity until an upgrade to Plane 1.4.0 or later is available.

Threat Intelligence Overview

EPSS Score
0.5%
Top 62% exploitable
Prevalence
Medium
popular open-source self-hosted PM tool, but only unmodified community Docker deployments affected
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 CRITICAL
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
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
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
Very High
Technical Impact
Total

Priority Score

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

CVE-2026-105632 HIGH
8.7 Oct 05

Plane prior to 1.4.0 allows an authenticated workspace member to bypass project-level authorization and join any project

CVE-2026-105630 HIGH
8.7 Oct 05

Stored cross-site scripting in Plane prior to 1.4.0 lets an authenticated low-privilege workspace member - including a G

CVE-2026-104979 HIGH
8.7 Oct 05

Stored cross-site scripting in Plane (versions up to and including 1.3.1) allows any authenticated user - including a br

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