CVE-2026-47666
Received Received - Intake

Stored XSS in Penpot via Malicious Font Family Names

Vulnerability report for CVE-2026-47666, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-08-26

Last updated on: 2026-08-26

Assigner: GitHub, Inc.

Description

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 custom font family names, which are interpolated into a @font-face CSS rule and injected into the page as HTML without sanitization. Because the backend accepts an arbitrary font-family string and the frontend writes the resulting style through innerHTML, a name containing markup such as a closing style tag followed by a script can break out of the style element and execute JavaScript on the Penpot origin. The attack is passive: any team member who opens a file referencing the malicious font triggers script execution simply by rendering the page, 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.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-08-26
Last Modified
2026-08-26
Generated
2026-08-27
AI Q&A
2026-08-27
EPSS Evaluated
N/A
NVD

Affected Vendors & Products

Showing 2 associated CPEs
Vendor Product Version / Range
penpot penpot to 2.14.3 (inc)
penpot penpot 2.15.3

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-79 The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

Penpot versions up to 2.14.3 are vulnerable to stored cross-site scripting via custom font family names. These names are inserted into a @font-face CSS rule without sanitization, allowing malicious markup like a closing style tag followed by a script to execute JavaScript when the page renders. The attack is passive and triggered simply by opening a file with the malicious font.

Detection Guidance

Check Penpot version with: curl -s http://your-penpot-server/api/version | grep version. If version is <= 2.14.3, the system is vulnerable. Inspect custom font family names in projects for HTML/script tags.

Impact Analysis

An attacker could steal session cookies, perform actions as the victim, or access their files and projects in Penpot. Any team member opening a file with the malicious font would unknowingly trigger script execution, compromising their account and data.

Compliance Impact

This vulnerability could lead to unauthorized access to sensitive data, violating GDPR's data protection principles or HIPAA's confidentiality requirements. Organizations using Penpot may face compliance breaches if user data is exposed due to this flaw.

Mitigation Strategies

Upgrade Penpot to version 2.15.3 or later immediately. Remove or sanitize any custom fonts with suspicious names in existing projects. Monitor for unauthorized actions or data access.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-47666. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart