Search
Find a vulnerability
Search criteria
2 vulnerabilities found for @penpot/mcp by penpot
CVE-2026-100868 (GCVE-0-2026-100868)
Vulnerability from nvd – Published: 2026-09-27 13:09 – Updated: 2026-09-27 13:09
VLAI
EPSS
VEX
Title
Penpot before 2.18.0 Unauthenticated WebSocket Access via MCP Bridge
Summary
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.
Severity
6.3 (Medium)
CWE
- CWE-1327 - Binding to an Unrestricted IP Address
Assigner
References
6 references
| URL | Tags |
|---|---|
| https://github.com/penpot/penpot/security/advisor… | vendor-advisory |
| https://github.com/penpot/penpot/commit/b5274a447… | patch |
| https://github.com/penpot/penpot/blob/1d2c37e52c7… | technical-description |
| https://github.com/penpot/penpot/security/advisor… | relatedvendor-advisory |
| https://github.com/penpot/penpot | product |
| https://www.vulncheck.com/advisories/penpot-befor… | third-party-advisory |
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| penpot | penpot |
Affected:
0 , < 2.18.0
(semver)
|
|
| penpot | @penpot/mcp |
Affected:
0 , ≤ 2.15.4
(semver)
|
Date Public
2026-09-22 00:00
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "penpot",
"vendor": "penpot",
"versions": [
{
"lessThan": "2.18.0",
"status": "affected",
"version": "0",
"versionType": "semver"
}
]
},
{
"collectionURL": "https://www.npmjs.com",
"defaultStatus": "unaffected",
"packageName": "@penpot/mcp",
"packageURL": "pkg:npm/%40penpot/mcp",
"product": "@penpot/mcp",
"vendor": "penpot",
"versions": [
{
"lessThanOrEqual": "2.15.4",
"status": "affected",
"version": "0",
"versionType": "semver"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:a:kaleidos:penpot:*:*:*:*:*:*:*:*",
"versionEndExcluding": "2.18.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"credits": [
{
"lang": "en",
"type": "finder",
"value": "George Chen"
}
],
"datePublic": "2026-09-22T00:00:00.000Z",
"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."
}
],
"metrics": [
{
"cvssV4_0": {
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"attackVector": "ADJACENT",
"baseScore": 5.3,
"baseSeverity": "MEDIUM",
"privilegesRequired": "NONE",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "NONE",
"subIntegrityImpact": "NONE",
"userInteraction": "NONE",
"vectorString": "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",
"version": "4.0",
"vulnAvailabilityImpact": "LOW",
"vulnConfidentialityImpact": "LOW",
"vulnIntegrityImpact": "LOW"
},
"format": "CVSS"
},
{
"cvssV3_1": {
"attackComplexity": "LOW",
"attackVector": "ADJACENT_NETWORK",
"availabilityImpact": "LOW",
"baseScore": 6.3,
"baseSeverity": "MEDIUM",
"confidentialityImpact": "LOW",
"integrityImpact": "LOW",
"privilegesRequired": "NONE",
"scope": "UNCHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L",
"version": "3.1"
},
"format": "CVSS"
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-1327",
"description": "Binding to an Unrestricted IP Address",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-09-27T13:09:53.387Z",
"orgId": "83251b91-4cc7-4094-a5c7-464a1b83ea10",
"shortName": "VulnCheck"
},
"references": [
{
"name": "GitHub Security Advisory (GHSA-ch2q-6x56-qg5r)",
"tags": [
"vendor-advisory"
],
"url": "https://github.com/penpot/penpot/security/advisories/GHSA-ch2q-6x56-qg5r"
},
{
"tags": [
"patch"
],
"url": "https://github.com/penpot/penpot/commit/b5274a44766d095247037be18c1d1918ac67ddeb"
},
{
"tags": [
"technical-description"
],
"url": "https://github.com/penpot/penpot/blob/1d2c37e52c733f74017d90b0fd1ae2d074a5c33d/mcp/packages/server/src/PluginBridge.ts#L52"
},
{
"name": "GitHub Security Advisory (GHSA-22qr-rp27-j9wm)",
"tags": [
"related",
"vendor-advisory"
],
"url": "https://github.com/penpot/penpot/security/advisories/GHSA-22qr-rp27-j9wm"
},
{
"tags": [
"product"
],
"url": "https://github.com/penpot/penpot"
},
{
"name": "VulnCheck Advisory: Penpot before 2.18.0 Unauthenticated WebSocket Access via MCP Bridge",
"tags": [
"third-party-advisory"
],
"url": "https://www.vulncheck.com/advisories/penpot-before-2.18.0-unauthenticated-websocket-access-via-mcp-bridge"
}
],
"title": "Penpot before 2.18.0 Unauthenticated WebSocket Access via MCP Bridge",
"x_generator": {
"engine": "vulncheck-endgame"
}
}
},
"cveMetadata": {
"assignerOrgId": "83251b91-4cc7-4094-a5c7-464a1b83ea10",
"assignerShortName": "VulnCheck",
"cveId": "CVE-2026-100868",
"datePublished": "2026-09-27T13:09:53.387Z",
"dateReserved": "2026-09-27T00:20:54.407Z",
"dateUpdated": "2026-09-27T13:09:53.387Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-100868 (GCVE-0-2026-100868)
Vulnerability from cvelistv5 – Published: 2026-09-27 13:09 – Updated: 2026-09-27 13:09
VLAI
EPSS
VEX
Title
Penpot before 2.18.0 Unauthenticated WebSocket Access via MCP Bridge
Summary
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.
Severity
6.3 (Medium)
CWE
- CWE-1327 - Binding to an Unrestricted IP Address
Assigner
References
6 references
| URL | Tags |
|---|---|
| https://github.com/penpot/penpot/security/advisor… | vendor-advisory |
| https://github.com/penpot/penpot/commit/b5274a447… | patch |
| https://github.com/penpot/penpot/blob/1d2c37e52c7… | technical-description |
| https://github.com/penpot/penpot/security/advisor… | relatedvendor-advisory |
| https://github.com/penpot/penpot | product |
| https://www.vulncheck.com/advisories/penpot-befor… | third-party-advisory |
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| penpot | penpot |
Affected:
0 , < 2.18.0
(semver)
|
|
| penpot | @penpot/mcp |
Affected:
0 , ≤ 2.15.4
(semver)
|
Date Public
2026-09-22 00:00
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "penpot",
"vendor": "penpot",
"versions": [
{
"lessThan": "2.18.0",
"status": "affected",
"version": "0",
"versionType": "semver"
}
]
},
{
"collectionURL": "https://www.npmjs.com",
"defaultStatus": "unaffected",
"packageName": "@penpot/mcp",
"packageURL": "pkg:npm/%40penpot/mcp",
"product": "@penpot/mcp",
"vendor": "penpot",
"versions": [
{
"lessThanOrEqual": "2.15.4",
"status": "affected",
"version": "0",
"versionType": "semver"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:a:kaleidos:penpot:*:*:*:*:*:*:*:*",
"versionEndExcluding": "2.18.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"credits": [
{
"lang": "en",
"type": "finder",
"value": "George Chen"
}
],
"datePublic": "2026-09-22T00:00:00.000Z",
"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."
}
],
"metrics": [
{
"cvssV4_0": {
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"attackVector": "ADJACENT",
"baseScore": 5.3,
"baseSeverity": "MEDIUM",
"privilegesRequired": "NONE",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "NONE",
"subIntegrityImpact": "NONE",
"userInteraction": "NONE",
"vectorString": "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",
"version": "4.0",
"vulnAvailabilityImpact": "LOW",
"vulnConfidentialityImpact": "LOW",
"vulnIntegrityImpact": "LOW"
},
"format": "CVSS"
},
{
"cvssV3_1": {
"attackComplexity": "LOW",
"attackVector": "ADJACENT_NETWORK",
"availabilityImpact": "LOW",
"baseScore": 6.3,
"baseSeverity": "MEDIUM",
"confidentialityImpact": "LOW",
"integrityImpact": "LOW",
"privilegesRequired": "NONE",
"scope": "UNCHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L",
"version": "3.1"
},
"format": "CVSS"
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-1327",
"description": "Binding to an Unrestricted IP Address",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-09-27T13:09:53.387Z",
"orgId": "83251b91-4cc7-4094-a5c7-464a1b83ea10",
"shortName": "VulnCheck"
},
"references": [
{
"name": "GitHub Security Advisory (GHSA-ch2q-6x56-qg5r)",
"tags": [
"vendor-advisory"
],
"url": "https://github.com/penpot/penpot/security/advisories/GHSA-ch2q-6x56-qg5r"
},
{
"tags": [
"patch"
],
"url": "https://github.com/penpot/penpot/commit/b5274a44766d095247037be18c1d1918ac67ddeb"
},
{
"tags": [
"technical-description"
],
"url": "https://github.com/penpot/penpot/blob/1d2c37e52c733f74017d90b0fd1ae2d074a5c33d/mcp/packages/server/src/PluginBridge.ts#L52"
},
{
"name": "GitHub Security Advisory (GHSA-22qr-rp27-j9wm)",
"tags": [
"related",
"vendor-advisory"
],
"url": "https://github.com/penpot/penpot/security/advisories/GHSA-22qr-rp27-j9wm"
},
{
"tags": [
"product"
],
"url": "https://github.com/penpot/penpot"
},
{
"name": "VulnCheck Advisory: Penpot before 2.18.0 Unauthenticated WebSocket Access via MCP Bridge",
"tags": [
"third-party-advisory"
],
"url": "https://www.vulncheck.com/advisories/penpot-before-2.18.0-unauthenticated-websocket-access-via-mcp-bridge"
}
],
"title": "Penpot before 2.18.0 Unauthenticated WebSocket Access via MCP Bridge",
"x_generator": {
"engine": "vulncheck-endgame"
}
}
},
"cveMetadata": {
"assignerOrgId": "83251b91-4cc7-4094-a5c7-464a1b83ea10",
"assignerShortName": "VulnCheck",
"cveId": "CVE-2026-100868",
"datePublished": "2026-09-27T13:09:53.387Z",
"dateReserved": "2026-09-27T00:20:54.407Z",
"dateUpdated": "2026-09-27T13:09:53.387Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}