GHSA-x7m8-jrm8-hpvx: XSS
Summary Embedded font-family names (word/fontTable.xml) were interpolated unescaped into an injected @font-face <style> and into the print window's document.write(). A crafted name injects page-wide CSS on open, and breaks out of <style> into executable HTML on Print.
Impact Opening a crafted .docx applies attacker-controlled CSS page-wide with zero clicks (overlay/phishing, attribute-selector exfiltration of input values, tracking beacons). Clicking Print escalates to script execution in the embedder's origin.
Remediation Upgrade to 1.8.3. Font names are CSS-escaped before interpolation (quotes, backslash, < >, and CSS newlines), and the print window is assembled with DOM APIs instead of document.write.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
npm/@eigenpal/docx-editor-reactto a version that resolves this vulnerability.Fixed in 1.8.3 - Upgrade
Upgrade
npm/@eigenpal/docx-editor-coreto a version that resolves this vulnerability.Fixed in 1.8.3 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 1.8.3
Event History
Frequently Asked Questions
What attacker interaction is required to trigger the vulnerability?
Opening a crafted .docx applies attacker-controlled CSS page-wide with no additional clicks. Script execution requires the user to click Print after opening the document.
What is the impact before a user prints the document?
A malicious embedded font-family name can inject CSS across the page when the document is opened. The advisory identifies overlay or phishing attacks, attribute-selector exfiltration of input values, and tracking beacons as possible effects.
Which components should be upgraded?
Upgrade npm/@eigenpal/docx-editor-react and npm/@eigenpal/docx-editor-core to version 1.8.3. This release CSS-escapes font names and replaces print-window document.write() assembly with DOM APIs.