Skip to main content

Penpot EUVDEUVD-2026-92715

| CVE-2026-105696 MEDIUM
Missing Authorization (CWE-862)
2026-10-05 GitHub_M
6.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Obtain valid share link and log into own Penpot account
  2. Exploit
    Learn UUID of an out-of-scope page in the same file
  3. Execution
    Call get-page/get-file-fragment RPC with unauthorized page-id
  4. Impact
    Exfiltrate complete shape and design data of restricted page

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Three concrete prerequisites must all hold: (1) the attacker possesses a valid Penpot share link granting blanket read access to the target file; (2) the attacker has their own authenticated Penpot session, because the get-page RPC requires authentication; and (3) the attacker knows the identifier (random UUID) of a page in that file that is outside the share link's authorized pages set. The same applies to the get-file-fragment RPC, which permitted share-link access without mapping fragments to authorized pages. Limiting factors that reduce real-world risk: exploitation is confined to pages within the same file the attacker already has a share link to; the target page-id is a random UUID that must be known or leaked (it is not enumerable by design); and the flaw yields only read access to design/shape data (no modification or denial of service). Fixed configurations are any deployment running Penpot 2.18.0 or later.

Impact

This is a medium-severity information-disclosure flaw (CVSS 6.5). The provided vector CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N indicates a remote, authenticated attacker with low complexity and no user interaction can achieve high confidentiality impact with no integrity or availability impact - consistent with the CWE-862 missing-authorization (IDOR-style) nature of the bug. No EPSS probability, CISA KEV listing, or public proof-of-concept is present in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation. The practical risk is materially lower than the raw CVSS number suggests because exploitation is gated by three stacked prerequisites: possession of a valid share link, a separate authenticated Penpot session of the attacker's own, and knowledge of the target page's random UUID. Impact is also bounded - an attacker can only read other pages within the same file for which they already hold a share link, not arbitrary cross-file or cross-tenant data. This is a legitimate confidentiality concern for multi-tenant/SaaS or collaborative self-hosted Penpot deployments where scoped share links are widely distributed, but it is not a mass-exploitation or wormable candidate; remediation is a straightforward upgrade to 2.18.0.

Exploit ScenarioDerived

An owner shares a Penpot file via a share link scoped to read only one page. An attacker who holds that share link and is logged into their own Penpot account learns or obtains the UUID of a different (unauthorized) page in the same file and calls the authenticated get-page (or get-file-fragment) RPC with that page-id, receiving the complete shape and design data of the out-of-scope page. No public exploit code is identified at time of analysis.

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 – Oct 05, 2026

Missing authorization checks in Penpot prior to 2.18.0 let a holder of a valid share link read design and shape data from pages outside that link's authorized page set, within a file they can already access. Exploitation requires an authenticated Penpot session (the get-page RPC is authenticated, CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N, base 6.5) plus knowledge of the target page's random UUID, so the impact is limited to read-only information disclosure of design data rather than modification or denial of service. No public exploit code identified at time of analysis, and the flaw is fixed in version 2.18.0.

RemediationAI

Vendor-released patch: 2.18.0 - upgrade every Penpot instance (backend and frontend) to 2.18.0 or later, which is the release carrying the authorization fix; the corresponding source change is commit 52573be07472987703b2ce715c4c10919f4e153e and the advisory is GHSA-x9xg-qphx-8grr. If an immediate upgrade is not possible, the most direct compensating control is to inventory and revoke or re-scope existing share links, particularly any link with a restricted page set on a file that also contains sensitive pages, since a link that grants access to all pages removes the out-of-scope precondition entirely - the trade-off is that legitimate collaborators lose their existing link URLs and must be re-issued new ones. Because exploitation additionally requires knowing the target page's random UUID, avoid exposing page identifiers in client-side telemetry, support tickets, screenshots, or third-party analytics, and rotate share links whose page IDs may have leaked; this is a containment measure rather than a fix, because it cannot stop an attacker who already holds an identifier. Operators who cannot patch can also restrict the Penpot API to trusted networks or place the share-link endpoints behind an authenticating proxy, accepting the usability cost of breaking anonymous public sharing, and should monitor backend logs for get-page or get-file-fragment calls from share-link sessions referencing page identifiers not present in the link's scope. Note that per the upstream diff, the get-file-fragment path was closed to share-link callers altogether, so any workflow depending on fragment access through a share link will need to be revisited after upgrading.

Affected VersionsENISA

penpot < 2.18.0

Affected Packages

euvd penpot fix: 2.18.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

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

Technical ContextAI · show details

Penpot is an open-source design and prototyping platform whose backend is written in Clojure and exposes functionality over an RPC command layer (for example get-page and get-file-fragment). Access is mediated by a permission map; when a request is made through a public share link the map has :type :share-link and carries a :pages set enumerating the pages that link is allowed to expose. The defect is a classic CWE-862 Missing Authorization: the get-page handler resolved the caller-supplied page-id (falling back to the file's first page) and returned the resulting page data without ever confirming that the resolved identifier was a member of the share link's authorized :pages set. Because get-page is an authenticated endpoint, an attacker needed both a valid share link for the target file and their own authenticated Penpot account, which together satisfied the permission resolution and let them pull any page in the same file whose random UUID they knew. The sibling get-file-fragment RPC had the analogous gap, permitting share-link access without mapping requested fragments to authorized pages. The upstream fix (commit 52573be07472987703b2ce715c4c10919f4e153e) computes a resolved-page-id before dispatch and raises a not-found error when the permission type is :share-link and that identifier is not contained in :pages, and it denies share-link callers access to file fragments outright; regression tests assert that a share-link holder can still reach the authorized page while receiving :object-not-found for out-of-scope pages and fragments, and that the file owner retains full page access.

Know when Penpot 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 (GitHub_M) PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 6.5 MEDIUM

Remote RPC (AV:N); attacker needs an authenticated session plus a valid share link (PR:L); no user interaction; discloses full page design data (C:H) with no integrity or availability impact.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

1
Patch available
Oct 05, 2026 - 21:02 EUVD

DescriptionCVE.org

Penpot is an open-source design and prototyping platform. Prior to 2.18.0, the get-page RPC accepts a share-link permission object with blanket read access but does not verify that the caller-selected page-id belongs to the link's authorized pages set. An attacker with both a valid share link and the attacker's own authenticated Penpot session can retrieve the complete shape and design data of another page in the same file when its identifier is known, because get-page requires authentication. The related get-file-fragment RPC also permits share-link access without mapping fragments to authorized pages. This issue is fixed in version 2.18.0.

Threat Intelligence Overview

EPSS Score
0.3%
Top 81% exploitable
Prevalence
Low
niche open-source design tool, limited production/enterprise footprint
Data Quality
5 sources
Confidence: Medium

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
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

More in Penpot

View all
CVE-2026-26202 HIGH POC
7.5 Feb 19

Penpot before version 2.13.2 contains a path traversal vulnerability in the font creation endpoint that allows authentic

CVE-2026-105691 CRITICAL
9.9 Oct 05

Authenticated command injection in the Penpot SVG exporter prior to 2.18.0 allows a user with edit rights on a design fi

CVE-2026-44986 CRITICAL
9.9 Jul 15

Account takeover in Penpot before 2.14.5 allows an authenticated registered user to hijack any non-blocked profile witho

CVE-2026-45806 HIGH
7.7 Jul 15

Server-side request forgery in Penpot before 2.15.0 lets an authenticated file editor coerce the backend into fetching a

CVE-2026-17613 HIGH
7.5 Aug 05

Missing authorization on Penpot's ::import-binfile RPC command allows any authenticated user to overwrite arbitrary file

CVE-2026-105688 MEDIUM
6.7 Oct 05

Privilege escalation in Penpot before 2.18.0 lets a non-owner team administrator promote themselves to team owner by cre

CVE-2026-105689 MEDIUM
6.0 Oct 05

Server-side request forgery in Penpot before 2.18.0 allows an authenticated user who controls a media-import URL, or an

CVE-2026-105695 MEDIUM
5.9 Oct 05

Penpot versions prior to 2.18.0 leak the contents of other users' in-progress uploads because the backend assemble-chunk

CVE-2026-105690 MEDIUM
5.9 Oct 05

Logout in Penpot versions prior to 2.18.0 clears the browser's auth-token cookie but leaves the matching server-side ses

CVE-2026-105692 MEDIUM
5.4 Oct 05

Authenticated editors on a Penpot file (prior to version 2.18.0) can delete share links that were created by other users

CVE-2026-105694 MEDIUM
5.4 Oct 05

Stored cross-site scripting in Penpot before 2.18.0 allows an authenticated user holding file-edit permission to upload

CVE-2026-105686 MEDIUM
5.3 Oct 05

Authenticated users of Penpot prior to 2.18.0 can exhaust server-side temporary storage by repeatedly re-uploading a val

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