Skip to content
Heist/ feed
Back to feed
Medium

Penpot: Anonymous share-link token disclosure & page-scope bypass via get-view-only-bundle

Type: advisorySources: OSV

Penpot is an open-source design and prototyping platform. Prior to 2.18.0, the unauthenticated get-view-only-bundle RPC returns every share-link row for a file even when the caller authenticated with only one scoped share link. A holder of a restrictive link can obtain other links' secret IDs, page scopes, comment permissions, and inspection permissions, then replay a more permissive token to access page data that was not included in the original share. This issue is fixed in version 2.18.0.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-105693
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 09:45 UTC · Revision 1

Source evidence

Penpot: Anonymous share-link token disclosure & page-scope bypass via get-view-only-bundle

core-osv · Original source

Published 5 Oct 2026, 19:56 UTC

Penpot is an open-source design and prototyping platform. Prior to 2.18.0, the unauthenticated get-view-only-bundle RPC returns every share-link row for a file even when the caller authenticated with only one scoped share link. A holder of a restrictive link can obtain other links' secret IDs, page scopes, comment permissions, and inspection permissions, then replay a more permissive token to access page data that was not included in the original share. This issue is fixed in version 2.18.0.

osv:CVE-2026-105693
Complete source record
{
  "id": "cdd598c29e8f65404ed8da32cc8e58191d77fb828e46bc8e93d22e04cf0cd084",
  "url": "https://osv.dev/vulnerability/CVE-2026-105693",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Penpot: Anonymous share-link token disclosure & page-scope bypass via get-view-only-bundle",
    "summary": "Penpot is an open-source design and prototyping platform. Prior to 2.18.0, the unauthenticated get-view-only-bundle RPC returns every share-link row for a file even when the caller authenticated with only one scoped share link. A holder of a restrictive link can obtain other links' secret IDs, page scopes, comment permissions, and inspection permissions, then replay a more permissive token to access page data that was not included in the original share. This issue is fixed in version 2.18.0.",
    "evidence": "osv:CVE-2026-105693",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-105693",
      "aliases": [
        "CVE-2026-105693",
        "GHSA-w8mf-4x22-24gg"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/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": "15195b3bbbbf2911b24007ad42453d264a2774d4"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "2.18.0"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "fixed": "15195b3bbbbf2911b24007ad42453d264a2774d4"
                      }
                    ],
                    "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-105693.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:27.680372400Z",
      "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-105693.json",
        "https://github.com/penpot/penpot/security/advisories/GHSA-w8mf-4x22-24gg",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-105693",
        "https://github.com/penpot/penpot/commit/15195b3bbbbf2911b24007ad42453d264a2774d4"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-862"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/105xxx/CVE-2026-105693.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-105693",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 494284,
  "published_at": "2026-10-05T19:56:47.826+00:00"
}