Penpot: Share-link page-scope escape — comment RPCs leak comment content, author identity, and all page-ids for pages outside the share scope
Penpot is an open-source design and prototyping platform. Prior to 2.18.0, the get-comment-threads, get-comment-thread, and get-comments RPC commands use check-comment-permissions! but do not apply the share link's pages restriction. A holder of a page-scoped share link can retrieve comment threads and full comment bodies from other pages in the same file, including commenter names, email addresses, photos, and page identifiers. The disclosed page identifiers can also be used with affected page-reading functionality to access unshared design content. This issue is fixed in version 2.18.0.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-105684
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 08:27 UTC · Revision 1
Source evidence
Penpot: Share-link page-scope escape — comment RPCs leak comment content, author identity, and all page-ids for pages outside the share scope
core-osv · Original sourcePublished 5 Oct 2026, 19:44 UTC
Penpot is an open-source design and prototyping platform. Prior to 2.18.0, the get-comment-threads, get-comment-thread, and get-comments RPC commands use check-comment-permissions! but do not apply the share link's pages restriction. A holder of a page-scoped share link can retrieve comment threads and full comment bodies from other pages in the same file, including commenter names, email addresses, photos, and page identifiers. The disclosed page identifiers can also be used with affected page-reading functionality to access unshared design content. This issue is fixed in version 2.18.0.
osv:CVE-2026-105684
Complete source record
{
"id": "13682e8d686b908cc300427ebe706a66ecb694b8db0562f59e20ec3867d095e3",
"url": "https://osv.dev/vulnerability/CVE-2026-105684",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Penpot: Share-link page-scope escape — comment RPCs leak comment content, author identity, and all page-ids for pages outside the share scope",
"summary": "Penpot is an open-source design and prototyping platform. Prior to 2.18.0, the get-comment-threads, get-comment-thread, and get-comments RPC commands use check-comment-permissions! but do not apply the share link's pages restriction. A holder of a page-scoped share link can retrieve comment threads and full comment bodies from other pages in the same file, including commenter names, email addresses, photos, and page identifiers. The disclosed page identifiers can also be used with affected page-reading functionality to access unshared design content. This issue is fixed in version 2.18.0.",
"evidence": "osv:CVE-2026-105684",
"products": [],
"severity": "medium",
"structured": {
"id": "CVE-2026-105684",
"aliases": [
"CVE-2026-105684",
"GHSA-fwm4-hm9f-rmcp"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/penpot/penpot",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "5baffdc213f0deaaeb318e97a41d611ac0656a94"
},
{
"fixed": "6d9f411fab28a8f60cf807728f4fac2ecb646ca6"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "2.18.0"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "6d9f411fab28a8f60cf807728f4fac2ecb646ca6"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "5baffdc213f0deaaeb318e97a41d611ac0656a94"
}
],
"source": "REFERENCES_TAG",
"original_tag": "2.18.0"
}
]
}
}
],
"versions": [
"2.17.1-RC5",
"2.18.0-RC1",
"2.17.1-RC4",
"2.17.1-RC3",
"2.17.1-RC2",
"2.17.1-RC1",
"2.17.0",
"2.17.0-RC6",
"2.17.0-RC5",
"2.17.0-RC4",
"2.17.0-RC3",
"2.17.0-RC1",
"2.16.1-RC2",
"2.16.0",
"2.16.0-RC13",
"2.16.0-RC11",
"2.16.0-RC9",
"2.16.0-RC8",
"2.16.0-RC7",
"2.16.0-RC6",
"2.16.0-RC5",
"2.16.0-RC4",
"2.16.0-RC3",
"2.16.0-RC2",
"2.16.0-RC1",
"2.15.0-RC1",
"2.14.0-RC4",
"2.14.0-RC3",
"2.14.0-RC2",
"2.14.0-RC1",
"2.10.0-RC1",
"2.7.0-RC1",
"2.6.0-RC1",
"2.5.0-RC1",
"2.5.0-DEV",
"pre-lazy-loading",
"1.14.1-beta",
"1.14.0-beta",
"1.9.0-alpha",
"1.8.2-alpha",
"1.8.1-alpha",
"1.8.0-alpha",
"1.7.4-alpha",
"1.7.3-alpha",
"1.7.2-alpha",
"1.7.1-alpha",
"1.7.0-alpha",
"1.6.5-alpha",
"1.6.4-alpha",
"1.6.3-alpha",
"1.6.2-alpha",
"1.6.1-alpha",
"1.6.0-alpha",
"1.5.4-alpha",
"1.5.3-alpha",
"1.5.2-alpha",
"1.5.1-alpha",
"1.5.0-alpha",
"1.4.1-alpha",
"1.4.0-alpha",
"1.4.0-dev",
"1.3.0-alpha",
"1.2.0-alpha",
"1.1.0-alpha",
"1.0.0-alpha",
"0.1.0",
"0.0.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-105684.json"
}
}
],
"modified": "2026-10-28T02:30:27.121017299Z",
"provider": "osv",
"references": [
"https://github.com/penpot/penpot/releases/tag/2.18.0",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/105xxx/CVE-2026-105684.json",
"https://github.com/penpot/penpot/security/advisories/GHSA-fwm4-hm9f-rmcp",
"https://nvd.nist.gov/vuln/detail/CVE-2026-105684",
"https://github.com/penpot/penpot/commit/6d9f411fab28a8f60cf807728f4fac2ecb646ca6"
],
"provider_metadata": {
"cwe_ids": [
"CWE-200",
"CWE-863"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/105xxx/CVE-2026-105684.json"
}
},
"related_cves": [
{
"value": "CVE-2026-105684",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 493824,
"published_at": "2026-10-05T19:44:07.526+00:00"
}