Executive brief
Penpot is an open-source design and prototyping platform used by teams to collaborate on files and projects. A vulnerability in versions up to 2.14.3 allows any team member with comment access to inject malicious HTML or JavaScript into file comments, which then executes in the browsers of all other collaborators when they view the comments panel. An attacker can steal session cookies, perform actions as victims, or access their files and projects without needing admin privileges.
Technical details
Penpot is vulnerable to stored cross-site scripting (XSS) through file comments. The backend stores comment content with only a length check and no sanitization, while the frontend renders comments directly via innerHTML without encoding or purifying the HTML. Any authenticated team member with comment access can inject arbitrary HTML payloads (e.g., <img onerror=> or <script> tags) that execute in the browser context of other collaborators. Attack preconditions are minimal: only network access, a valid user account (any team member), and user interaction (opening the comments panel). The default Docker installation has no Content-Security-Policy header, removing any additional mitigation. The fix was implemented in version 2.15.3 by adding HTML escaping for comment content at rendering time.
Affected products
- Penpot Penpot up to and including 2.14.3
Timeline
- 2026-08-26: disclosed
- 2026: patched: Fixed in version 2.15.3