Skip to main content

Plane CVE-2026-105636

| EUVDEUVD-2026-92701 CRITICAL
Server-Side Request Forgery (SSRF) (CWE-918)
2026-10-05 GitHub_M
9.9
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Authenticate and create workspace
  2. Delivery
    Register webhook to attacker-controlled public URL
  3. Exploit
    Attacker endpoint returns 302 to cloud metadata IP
  4. Execution
    Worker follows redirect and fetches internal response
  5. Impact
    Read exfiltrated body via webhook-logs API

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Credential Access

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 hold an account that can create a workspace and register a webhook (authenticated, PR:L), and the target Plane instance must be running a version prior to 1.4.0 where webhook_send_task calls requests.post() without allow_redirects=False. Exploitation requires that validate_url() is applied only to the originally submitted URL (which the attacker sets to a benign public host) while the redirect target is unvalidated, so the attacker-controlled public endpoint must return a 3xx redirect to an internal/reserved address. Impact is maximized when Plane runs on cloud infrastructure exposing an instance-metadata endpoint (e.g. 169.254.169.254) or reachable internal services. Limiting factors: requires authentication and workspace-creation privileges (not anonymous), requires the worker to actually dispatch a webhook event, and the payload for internal POSTs is the fixed webhook body (limited attacker control over request contents).

Impact

This is a genuine high-priority issue rather than an inflated-CVSS artifact, though slightly less severe than the 9.9 suggests. The CVSS vector (AV:N/AC:L/PR:L/UI:N/S:C) is internally consistent with the description: a network-reachable, low-complexity attack requiring only low privileges (the ability to create a workspace - PR:L, i.e. authenticated) and no user interaction, crossing a scope boundary into the internal network/cloud-metadata plane. The CWE-918 SSRF classification matches the described redirect-based bypass of validate_url(). No EPSS score, KEV listing, or standalone exploit POC was provided in the input; the referenced GitHub artifacts are the vendor advisory (GHSA-mq87-52pf-hm3h), the fix PR #9163, the patch commit, and the v1.4.0 release - these confirm the root cause and remediation but are NOT exploitation evidence. Therefore exploitation status is 'no public exploit identified at time of analysis.' The real risk driver is impact: a successful SSRF to cloud instance-metadata (e.g. 169.254.169.254) can disclose IAM credentials and lead to broader cloud-account compromise, which is why confidentiality impact is high. The main mitigating factor is the PR:L authentication requirement - the attacker must be able to register and create a workspace, so this is not fully anonymous internet-wide exploitation. Self-hosted Plane deployments running on cloud infrastructure prior to 1.4.0 should treat this as an urgent patch.

Exploit ScenarioDerived

An authenticated user who can create a workspace registers a webhook whose URL points to an attacker-controlled public endpoint that passes validate_url(). When an event fires, the Plane worker POSTs to that endpoint, which returns a 302 redirect to an internal address such as the cloud metadata service; because allow_redirects is not disabled, the worker follows the hop, fetches the internal response, and stores the body in webhook_logs, which the attacker then reads back through the workspace webhook-logs API. No public exploit code was identified, but the fix PR diff fully documents the vulnerable code path.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
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

Authenticated users who can create a workspace in Plane can force the application's background worker to fetch internal-only resources - including cloud instance metadata endpoints - by registering a webhook whose URL points at an attacker-controlled public host that returns a 302 redirect to a private, loopback, or link-local address. Because the pre-1.4.0 webhook delivery task calls requests.post() without disabling redirects and only validates the originally submitted URL, the fetched response body is written into webhook_logs and can be read back through the workspace webhook-logs API, turning the SSRF into a practical internal-data exfiltration channel. All Plane versions prior to 1.4.0 are affected; the issue is fixed in 1.4.0, no public exploit code has been identified at time of analysis, and exploitation requires authentication plus workspace-creation privileges rather than being anonymous.

RemediationAI

Upgrade to Plane 1.4.0 or later, which is the vendor-released patch for this issue and is available at https://github.com/makeplane/plane/releases/tag/v1.4.0 (fix delivered via PR https://github.com/makeplane/plane/pull/9163 and commit 04622ce1188c4680951f0001e35efb342fe51615, advisory https://github.com/makeplane/plane/security/advisories/GHSA-mq87-52pf-hm3h); if an immediate upgrade is not possible, deploy compensating controls in this order. First, enforce network-level egress filtering on the Plane API/worker containers so outbound traffic to 169.254.169.254/32, 169.254.0.0/16, 127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, and other reserved ranges is dropped - this neutralizes the redirect hop regardless of code version, at the cost of requiring an egress proxy or firewall rule and potentially breaking legitimate webhooks to internal services that some teams intentionally use. Second, on cloud hosts require IMDSv2 with a hop limit of 1 and token-only access, which makes metadata retrieval via a simple followed redirect fail; note this protects metadata specifically and not other internal HTTP services. Third, restrict workspace-creation and webhook-registration privileges to trusted users, since the attack is authenticated and preconditioned on that capability, and audit existing webhook_logs for entries whose response bodies contain unexpected internal content or metadata responses. None of these substitutes for the upgrade, since only 1.4.0 adds IP pinning against DNS rebinding and redirect-hop re-validation.

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

This is a server-side request forgery (CWE-918) rooted in an incomplete URL validation model. Plane's apps/api/plane/bgtasks/webhook_task.py guarded the initial webhook URL with validate_url() from plane.utils.ip_address, which blocks private, loopback, link-local, and reserved ranges - but the guard was applied before the request was issued, and the outbound call used requests.post() with the default allow_redirects=True behavior. As a result the HTTP client transparently followed any 3xx Location header, performing a fresh, unvalidated resolution and connection to whatever address the attacker's public server named. The same code path also carried a classic DNS-rebinding TOCTOU weakness: validating a hostname and then letting requests re-resolve it allows an attacker to swap in an internal IP between the two lookups. The upstream fix (PR #9163, commit 04622ce1188c4680951f0001e35efb342fe51615) introduces plane.utils.url_security.pinned_fetch / pinned_fetch_following_redirects, which resolve the host once, pin the connection to the validated IP to defeat rebinding, and re-validate every redirect hop - or refuse to follow redirects entirely in the webhook send path. The patch also reworks the sibling avatar-download path in the OAuth authentication adapter (apps/api/plane/authentication/adapter/base.py), which had the same follow-the-redirect exposure against attacker-influenceable profile image URLs, and converts SSRF validation failures into non-retryable, admin-visible webhook log entries.

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

Authenticated workspace creator (PR:L), network and low complexity; redirect SSRF crosses into internal/metadata plane (S:C) disclosing credentials (C:H), with only limited integrity via fixed-body internal POSTs (I:L) and no availability impact.

3.1 AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:L/VA:N/SC:L/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
Changed
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

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

DescriptionCVE.org

Plane is an open-source project management tool. Prior to 1.4.0, the webhook delivery task in apps/api/plane/bgtasks/webhook_task.py calls requests.post() without allow_redirects=False and does not validate redirect targets. validate_url() blocks private, loopback, link-local, and reserved addresses in the original webhook URL, but the final URL reached after one or more redirects is not checked. A user who can create a workspace can register a webhook pointing to an attacker-controlled public endpoint that returns a 302 redirect to an internal address. The Plane worker then fetches internal resources, including cloud metadata, and stores the response body in webhook_logs, where the attacker can retrieve it through the workspace webhook-logs API. This issue is fixed in 1.4.0.

Technical POC Analysis

CWE-918 Server-Side Request Forgery.

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 installations running versions earlier than 1.4.0 allow a user who can create a workspace to turn the product's own webhook feature into a covert channel for reading internal-only network resources, including cloud instance metadata that frequently holds infrastructure credentials. Because the retrieved content is written into webhook logs and can be read back through the workspace webhook-logs API, an attacker can quietly extract sensitive internal data without direct network access to those systems. Leadership should treat this as a cloud credential-exposure risk for any self-hosted Plane instance reachable by non-administrative users, with the highest exposure in cloud environments where instance metadata services are enabled.

Business Impact: High
Compensating Controls

Apply vendor patch (upgrade to Plane 1.4.0). Where an immediate upgrade is not possible, restrict workspace-creation privileges, block background-worker egress to loopback, link-local, and private address ranges, disable or isolate the webhook feature, enforce IMDSv2, and monitor webhook_logs for internal data leakage.

Threat Intelligence Overview

EPSS Score
0.4%
Top 74% exploitable
Prevalence
Medium
self-hosted open-source project-management tool, moderate but not ubiquitous adoption
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.4%
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
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

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

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

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