Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as non-owner team administrator
-
ExploitInvoke delete-team-member RPC targeting the owner
-
ExecutionOwner's team-profile-rel membership deleted
-
ImpactOwner 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H
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.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.
Penpot before version 2.13.2 contains a path traversal vulnerability in the font creation endpoint that allows authentic
Authenticated command injection in the Penpot SVG exporter prior to 2.18.0 allows a user with edit rights on a design fi
Account takeover in Penpot before 2.14.5 allows an authenticated registered user to hijack any non-blocked profile witho
Server-side request forgery in Penpot before 2.15.0 lets an authenticated file editor coerce the backend into fetching a
Missing authorization on Penpot's ::import-binfile RPC command allows any authenticated user to overwrite arbitrary file
Privilege escalation in Penpot before 2.18.0 lets a non-owner team administrator promote themselves to team owner by cre
Missing authorization checks in Penpot prior to 2.18.0 let a holder of a valid share link read design and shape data fro
Server-side request forgery in Penpot before 2.18.0 allows an authenticated user who controls a media-import URL, or an
Penpot versions prior to 2.18.0 leak the contents of other users' in-progress uploads because the backend assemble-chunk
Logout in Penpot versions prior to 2.18.0 clears the browser's auth-token cookie but leaves the matching server-side ses
Authenticated editors on a Penpot file (prior to version 2.18.0) can delete share links that were created by other users
Stored cross-site scripting in Penpot before 2.18.0 allows an authenticated user holding file-edit permission to upload
EUVD-2026-92705
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB