Skip to main content

Penpot EUVDEUVD-2026-92705

| CVE-2026-105687 MEDIUM
Improper Privilege Management (CWE-269)
2026-10-05 GitHub_M
4.9
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as non-owner team administrator
  2. Exploit
    Invoke delete-team-member RPC targeting the owner
  3. Execution
    Owner's team-profile-rel membership deleted
  4. Impact
    Owner locked out of team projects, files, fonts and media

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V8 - Authorization Least privilege enforcement
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

Attacker must hold an active non-owner team administrator role on a Penpot team that has a distinct owner, and the team must run a version prior to 2.18.0. The attack uses the standard delete-team-member RPC against default configurations - no special feature toggle is needed - but exploitation is bounded by three factors: (1) attacker already needs admin-level authentication on the target team (PR:H, not remote-unauthenticated); (2) impact is limited to availability/lockout of the targeted owner, with no confidentiality or integrity effect; (3) upgrading to 2.18.0, which rejects owner removal by non-owners with :cant-remove-owner, fully mitigates it.

Impact

This is a genuine but limited-severity authorization flaw (CWE-269, improper privilege management), not a high-urgency network threat. The CVSS 3.1 vector (AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H, base 4.9/Medium) is internally consistent with the description: exploitation is over the network via the delete-team-member RPC with low complexity, but requires PR:H - the attacker must already hold a trusted non-owner team administrator role. Per the precision rules PR:H means the action is authenticated (admin-level). Impact is availability-only (C:N/I:N): the owner is locked out of the team and its projects, files, fonts and media, but no data is read or altered and no code is executed. No EPSS score, CISA KEV listing, or public POC was provided in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation. The practical risk is an insider/privilege-abuse or compromised-admin scenario rather than mass remote exploitation - the PR:H requirement sharply limits the attacker population. Note the only 'exploit' artifact present is the vendor's remediation commit, which is a patch, not weaponized exploit code; do not conflate the two.

Exploit ScenarioDerived

A disgruntled or compromised non-owner team administrator calls the delete-team-member RPC targeting the team owner. Because the pre-2.18.0 code only prevented self-deletion and never checked owner status, the owner's team-profile-rel membership is removed, locking them out of all team projects, files, fonts and media. No public exploit exists; the fix (commit 45f0153) adds a :cant-remove-owner check that blocks non-owners from removing an owner.

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

Penpot versions prior to 2.18.0 fail to protect a team owner from removal by another administrator: a non-owner team admin can call the delete-team-member RPC to strip the owner's team-profile membership, locking the owner out of the team and its projects, files, fonts, and media. The flaw is an authenticated, high-privilege availability issue (CVSS 4.9, AV:N/PR:H, availability-only), not a remotely exploitable unauthenticated attack, and no public exploit code was identified at time of analysis. The issue is fixed in 2.18.0.

RemediationAI

Vendor-released patch: upgrade to Penpot 2.18.0 (https://github.com/penpot/penpot/releases/tag/2.18.0), which adds the member-role check and rejects owner removal by non-owners with the :cant-remove-owner validation error; the change is carried in commit 45f0153e8fb1d9b70f2cb121b15780ba2c2085c4. As a compensating control on unfixed instances, audit and minimize the number of non-owner administrator accounts and only grant the admin role to fully trusted operators, accepting that this reduces operational flexibility; additionally, monitor or alert on delete-team-member RPC calls that target a member holding the owner role, and ensure a documented recovery path (a second owner or direct database restoration of the deleted team-profile membership row) is in place, since the deleted membership row is what gates all subsequent team access. If an owner has already been locked out, restore the membership through the database or another owner account before applying the 2.18.0 upgrade.

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's backend is written in Clojure and exposes team management through RPC commands in backend/src/app/rpc/commands/teams.clj. The delete-team-member handler previously loaded the calling profile's permissions but never verified the role of the member being deleted, so any profile holding a team admin role could remove a member whose role was owner. This is a classic CWE-269 (Improper Privilege Management) authorization gap: privileged operations are checked against the caller but not against the target of the action, allowing a lower-ranked privileged user to act on a higher-ranked one. The upstream fix adds a get-team-members lookup plus a guard that raises :validation/:cant-remove-owner when the target member has :is-owner set and the caller's permissions do not, and also returns a :not-found/:member-does-not-exist error for unknown member IDs. Because the removed artifact is the owner's team-profile membership row, the lockout affects the entire team object graph (projects, files, fonts, media) rather than a single resource, but there is no data exposure or modification beyond the privilege boundary break.

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 4.9 MEDIUM
AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 4.9 MEDIUM

RPC is reachable over the network (AV:N, AC:L, UI:N) but requires a trusted team-admin role (PR:H); only the owner's access is denied, so C:N/I:N and A:H.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

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 delete-team-member RPC allows a team administrator to remove any member other than themselves but does not protect the team owner. A non-owner administrator can delete the owner's team-profile-rel membership and lock the owner out of the team and its projects, files, fonts, and media. This issue is fixed in version 2.18.0.

Threat Intelligence Overview

EPSS Score
0.3%
Top 80% exploitable
Prevalence
Low
open-source design/prototyping platform, 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

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

Attack Technique

Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.

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-105696 MEDIUM
6.5 Oct 05

Missing authorization checks in Penpot prior to 2.18.0 let a holder of a valid share link read design and shape data fro

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

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