Skip to main content

Penpot CVE-2026-100868

| EUVDEUVD-2026-87940 MEDIUM
Binding to an Unrestricted IP Address (CWE-1327)
2026-09-27 disclosure@vulncheck.com GHSA-hm3w-7xgf-hfwf
5.3
CVSS 4.0 · Vendor: vulncheck
View

Attack ChainAIDerived

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

  1. Access
    Gain adjacent-network position
  2. Delivery
    Connect to unauthenticated WebSocket bridge port
  3. Exploit
    Impersonate Penpot browser plugin
  4. Execution
    Intercept task payloads and inject forged results
  5. Impact
    Corrupt MCP client output / disclose task data

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Hardware binding mechanism
Exploitation Conditions

Requires the Penpot MCP server plugin to be running in single-user mode, where the plugin WebSocket bridge (PluginBridge.ts) is created without a host argument and defaults to binding all interfaces (0.0.0.0) with no authentication token or auth middleware. The attacker must have adjacent-network reachability (AV:A) to the WebSocket port - remote Internet exploitation is not implied. Limiting factors: exposure only in single-user mode with the MCP bridge feature active; impact is capped at plugin impersonation (intercept payloads, return forged results), not code execution; and versions binding to localhost/host are unaffected. Note the separate ReplServer /execute RCE (GHSA-22qr) is a different flaw with different conditions.

Impact

This is a genuine but modest-severity issue, not a top priority. The vendor CVSS 4.0 vector (AV:A/AC:L/PR:N/UI:N/VC:L/VI:L/VA:L, base 5.3) is internally consistent with the description: adjacent-network, unauthenticated, no user interaction, and low-not-high impact on all three of C/I/A because the flaw only lets an attacker impersonate the browser plugin over the MCP WebSocket bridge - intercepting task payloads (confidentiality) and returning forged task results (integrity), rather than achieving full compromise. No EPSS score, no CISA KEV listing, and no POC exists for THIS specific WebSocket-impersonation flaw. IMPORTANT DATA CONFLICT: the bundled advisory GHSA-22qr-rp27-j9wm describes a DIFFERENT and far more severe issue - an unauthenticated /execute RCE in ReplServer.ts (binds 0.0.0.0:4403, arbitrary Node code execution) with a working PoC - but the CVE description, CVSS vector, CWE-1327 (improper binding to all interfaces), and the fix commit b5274a44 (adds host:mcpServer.host to PluginBridge.ts WebSocketServer) all point to the lower-severity PluginBridge WebSocket flaw. The RCE PoC should NOT be attributed to this CVE. Treated on its own signals, this is a low-real-risk misconfiguration exposure gated behind adjacent-network positioning and single-user mode.

Exploit ScenarioDerived

An attacker on the same LAN/adjacent network segment as a developer running Penpot's MCP server in single-user mode connects to the exposed WebSocket port (bound to 0.0.0.0 with no auth), impersonates the legitimate Penpot browser plugin, and observes MCP task payloads while injecting forged task results back to the MCP client. No public PoC exists for this WebSocket-impersonation path (the PoC in the bundled advisory targets a separate ReplServer /execute RCE endpoint).

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 27, 2026

Unauthenticated WebSocket access in the Penpot MCP server plugin's browser bridge (PluginBridge) lets attackers on adjacent networks impersonate the Penpot browser plugin, intercept MCP task payloads, and return forged results when Penpot runs in single-user mode. Affected versions are before 2.18.0, and exploitation requires local network reachability to the exposed WebSocket port, with impact capped at plugin impersonation and confidentiality/integrity loss (CVSS 5.3) rather than code execution. No public exploit code or CISA KEV listing was identified at time of analysis, and the separate ReplServer /execute RCE (GHSA-22qr) is an unrelated defect with different prerequisites.

RemediationAI

Upgrade to Penpot 2.18.0, which includes the upstream fix commit b5274a44766d095247037be18c1d1918ac67ddeb that binds the PluginBridge WebSocket server to mcpServer.host instead of all interfaces; after upgrading, verify the WebSocketServer constructor passes a host value. Where immediate upgrade is not possible, configure the MCP server so the bridge binds to localhost or the intended interface and ensure the WebSocket port is unreachable from adjacent networks - enforce this with host firewall rules or by running the bridge inside a container/namespace - accepting the trade-off that binding to localhost prevents the browser plugin from connecting from other hosts. Avoid running the MCP server in a single-user configuration on untrusted LANs, and consult the vendor advisory GHSA-ch2q-6x56-qg5r for official guidance. Address the separate ReplServer /execute RCE (GHSA-22qr, fixed in @penpot/mcp 2.15.0) independently, as it is a distinct flaw with different conditions.

Affected VersionsENISA

penpot 0 <2.18.0
@penpot/mcp 0 ≤2.15.4

Affected Packages

euvd penpot fix: 2.18.0
euvd penpot_mcp no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The flaw is CWE-1327 (Binding to an Unrestricted IP Address) within Penpot's Model Context Protocol (MCP) server package (mcp/packages/server). In single-user mode the PluginBridge constructs a Node WebSocketServer without a host argument, so it binds to all interfaces (0.0.0.0) and accepts connections from the local network with no authentication token or middleware. That bridge is the transport linking the MCP client to the Penpot browser plugin, carrying plugin tasks and their results; absent authentication, an attacker can assume the plugin role, observe or tamper with in-flight payloads, and feed forged responses back to the MCP client. The referenced upstream commit b5274a44766d095247037be18c1d1918ac67ddeb changes the constructor to new WebSocketServer({ port: port, host: mcpServer.host }), constraining the bind to the configured host (default localhost). The same misconfiguration class was previously corrected in PenpotMcpServer.ts, which already binds to this.host; ReplServer.ts still exhibits a related binding error but is tracked as a distinct, higher-impact flaw (GHSA-22qr).

Know when Node.js 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 (vulncheck) PRIMARY 5.3 MEDIUM
CVSS:4.0/AV:A/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N
vuln.today AI 6.3 MEDIUM

Adjacent-network unauthenticated access to an unauthenticated WebSocket (AV:A/PR:N); impersonation yields limited payload disclosure, forged results, and disruption - hence C:L/I:L/A:L, scope unchanged.

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

Primary rating from Vendor (vulncheck).

CVSS VectorVendor: vulncheck

Attack Vector
Adjacent
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Sep 27, 2026 - 14:16 EUVD

DescriptionCVE.org

Penpot before 2.18.0 binds the MCP server plugin WebSocket bridge to all network interfaces without authentication in single-user mode. Unauthenticated attackers on adjacent networks can connect to the WebSocket port to impersonate the Penpot browser plugin, intercept task payloads, and return forged results to the MCP client.

Threat Intelligence Overview

EPSS Score
0.3%
Top 84% exploitable
Prevalence
Low
Optional new MCP server module of an open-source design tool; niche footprint
Data Quality
6 sources
Confidence: High

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Controlled
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

CVE-2025-68613 HIGH POC
8.8 Dec 19

Remote code execution in n8n's workflow expression evaluation system allows an authenticated user with workflow creation

CVE-2024-41713 CRITICAL POC
9.1 Oct 21

A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could

CVE-2024-55591 CRITICAL POC
9.8 Jan 14

FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote

CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2014-7205 CRITICAL POC
10.0 Oct 08

Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t

CVE-2025-59528 CRITICAL POC
10.0 Sep 22

Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete

CVE-2017-14849 HIGH POC
7.5 Sep 28

Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc

CVE-2017-5941 CRITICAL POC
9.8 Feb 09

An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2014-3744 HIGH POC
7.5 Oct 23

Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi

CVE-2014-9566 HIGH POC
7.5 Mar 10

Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin

CVE-2013-4660 MEDIUM POC
6.8 Jun 28

The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic

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