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.
PUBLISHED5.2CWE-1327
Penpot before 2.18.0 Unauthenticated WebSocket Access via MCP Bridge
Problem type
Affected products
penpot
penpot
< 2.18.0 - AFFECTED
@penpot/mcp
<= 2.15.4 - AFFECTED
References
GitHub Security Advisory (GHSA-ch2q-6x56-qg5r)
https://github.com/penpot/penpot/security/advisories/GHSA-ch2q-6x56-qg5r
github.com
https://github.com/penpot/penpot/commit/b5274a44766d095247037be18c1d1918ac67ddeb
github.com
https://github.com/penpot/penpot/blob/1d2c37e52c733f74017d90b0fd1ae2d074a5c33d/mcp/packages/server/src/PluginBridge.ts#L52
GitHub Security Advisory (GHSA-22qr-rp27-j9wm)
https://github.com/penpot/penpot/security/advisories/GHSA-22qr-rp27-j9wm
github.com
https://github.com/penpot/penpot
VulnCheck Advisory: Penpot before 2.18.0 Unauthenticated WebSocket Access via MCP Bridge
https://www.vulncheck.com/advisories/penpot-before-2.18.0-unauthenticated-websocket-access-via-mcp-bridge
JSON source
https://cveawg.mitre.org/api/cve/CVE-2026-100868Click to expand
{
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"cveMetadata": {
"cveId": "CVE-2026-100868",
"assignerOrgId": "83251b91-4cc7-4094-a5c7-464a1b83ea10",
"assignerShortName": "VulnCheck",
"dateUpdated": "2026-09-27T13:09:53.387Z",
"dateReserved": "2026-09-27T00:20:54.407Z",
"datePublished": "2026-09-27T13:09:53.387Z",
"state": "PUBLISHED"
},
"containers": {
"cna": {
"providerMetadata": {
"orgId": "83251b91-4cc7-4094-a5c7-464a1b83ea10",
"shortName": "VulnCheck",
"dateUpdated": "2026-09-27T13:09:53.387Z"
},
"datePublic": "2026-09-22T00:00:00.000Z",
"title": "Penpot before 2.18.0 Unauthenticated WebSocket Access via MCP Bridge",
"descriptions": [
{
"lang": "en",
"value": "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."
}
],
"affected": [
{
"vendor": "penpot",
"product": "penpot",
"defaultStatus": "unaffected",
"versions": [
{
"version": "0",
"status": "affected",
"versionType": "semver",
"lessThan": "2.18.0"
}
]
},
{
"vendor": "penpot",
"product": "@penpot/mcp",
"collectionURL": "https://www.npmjs.com",
"packageName": "@penpot/mcp",
"defaultStatus": "unaffected",
"versions": [
{
"version": "0",
"status": "affected",
"versionType": "semver",
"lessThanOrEqual": "2.15.4"
}
]
}
],
"problemTypes": [
{
"descriptions": [
{
"lang": "en",
"description": "Binding to an Unrestricted IP Address",
"cweId": "CWE-1327",
"type": "CWE"
}
]
}
],
"references": [
{
"url": "https://github.com/penpot/penpot/security/advisories/GHSA-ch2q-6x56-qg5r",
"name": "GitHub Security Advisory (GHSA-ch2q-6x56-qg5r)",
"tags": [
"vendor-advisory"
]
},
{
"url": "https://github.com/penpot/penpot/commit/b5274a44766d095247037be18c1d1918ac67ddeb",
"tags": [
"patch"
]
},
{
"url": "https://github.com/penpot/penpot/blob/1d2c37e52c733f74017d90b0fd1ae2d074a5c33d/mcp/packages/server/src/PluginBridge.ts#L52",
"tags": [
"technical-description"
]
},
{
"url": "https://github.com/penpot/penpot/security/advisories/GHSA-22qr-rp27-j9wm",
"name": "GitHub Security Advisory (GHSA-22qr-rp27-j9wm)",
"tags": [
"related",
"vendor-advisory"
]
},
{
"url": "https://github.com/penpot/penpot",
"tags": [
"product"
]
},
{
"url": "https://www.vulncheck.com/advisories/penpot-before-2.18.0-unauthenticated-websocket-access-via-mcp-bridge",
"name": "VulnCheck Advisory: Penpot before 2.18.0 Unauthenticated WebSocket Access via MCP Bridge",
"tags": [
"third-party-advisory"
]
}
],
"metrics": [
{
"format": "CVSS"
},
{
"format": "CVSS",
"cvssV3_1": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L",
"attackVector": "ADJACENT_NETWORK",
"attackComplexity": "LOW",
"privilegesRequired": "NONE",
"userInteraction": "NONE",
"scope": "UNCHANGED",
"confidentialityImpact": "LOW",
"integrityImpact": "LOW",
"availabilityImpact": "LOW",
"baseScore": 6.3,
"baseSeverity": "MEDIUM"
}
}
],
"credits": [
{
"lang": "en",
"value": "George Chen",
"type": "finder"
}
]
}
}
}