CVE-2026-47665: Penpot: Stored XSS via comment content, innerHTML renders unsanitized HTML
Penpot is an open-source design and prototyping platform. In versions up to and including 2.14.3, Penpot is vulnerable to stored cross-site scripting through file comments, whose content is stored as raw text and rendered into the page with innerHTML without any sanitization. Because the backend applies only a length check and the frontend writes comment content directly through innerHTML, any team member who can comment on a shared file can embed HTML such as an image error handler or script that executes in the browser of every other collaborator. The attack is passive: any user who opens the comments panel on the affected file triggers script execution on the Penpot origin, allowing theft of session cookies, actions performed as the victim, and access to their files and projects. This issue is fixed in version 2.15.3.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Penpotto a version that resolves this vulnerability.Fixed in 2.15.3
Event History
Frequently Asked Questions
Who can exploit this issue, and who is exposed to the payload?
Any team member with permission to comment on a shared file can create a malicious comment. Other collaborators are exposed when they open the comments panel for that affected file.
Does exploitation require user interaction?
Yes. A victim must open the comments panel on a file containing the malicious comment. No additional interaction with the comment is described as necessary.
What can an attacker do after the payload executes?
The script executes on the Penpot origin and can steal session cookies, perform actions as the victim, and access the victim's files and projects.
Which versions are affected and what version fixes the issue?
Penpot versions up to and including 2.14.3 are affected. The issue is fixed in version 2.15.3.