Description
Milkdown before 7.21.3 contains a DOM cross-site scripting vulnerability in the @milkdown/plugin-emoji package that allows unauthenticated attackers to execute arbitrary JavaScript in the host application's origin by causing a victim to paste attacker-controlled content. The parseDOM.getAttrs handler stores raw innerHTML of pasted span elements with data-type="emoji" without sanitization, and the toMarkdown runner subsequently assigns this unsanitized value directly to a live DOM element's innerHTML, bypassing the DOMPurify sanitization used in the toDOM path, causing payload execution on every markdown serialization cycle.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| Milkdown | milkdown | < 7.21.3 | 7.21.3 |
References
- Milkdown 7.21.3 Release Notes release-notes patch
- Pull Request issue-tracking patch
- Patch Commit patch
- @milkdown/plugin-emoji product
- https://www.vulncheck.com/advisories/milkdown-dom-xss-via-innerhtml-assignment third-party-advisory