GHSA-x7m8-jrm8-hpvx
@eigenpal/docx-editor-react: CSS injection and print-time XSS via unescaped embedded font-family name
Summary
## Summary Embedded font-family names (`word/fontTable.xml`) were interpolated unescaped into an injected `@font-face` ` ` and into the print window's `document.write()`. A crafted name injects page-wide CSS on open, and breaks out of ` ` 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 packages
| Ecosystem | Package | Affected versions | Fixed versions |
|---|---|---|---|
| npm | @eigenpal/docx-editor-core | — | 1.8.3 |
| npm | @eigenpal/docx-editor-react | — | 1.8.3 |
Remediation: Upgrade to 1.8.3 or later.
References
Includes data from the GitHub Advisory Database, licensed under CC-BY 4.0.