PT-2026-93790 · Npm · @Nuxtjs/Mdc
CVE-2026-63671
·
Published
2026-09-16
·
Updated
2026-09-18
CVSS v3.1
8.1
High
| Vector | AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N |
Name of the Vulnerable Software and Affected Versions
@nuxtjs/mdc versions prior to 0.22.1
Description
@nuxtjs/mdc renders untrusted Markdown to a Vue component tree and enables raw HTML by default via
parseMarkdown with allowDangerousHtml set to true. The built-in sanitizer, which uses validateProps, validateProp, and unsafeLinkPrefix, contains two gaps that allow the execution of malicious scripts:- The
validateProp()function only checks attributes namedhreforsrc. This allows an SVGxlink:hrefattribute (represented asxLinkHref) to contain ajavascript:URL, which executes in the page origin when clicked. - The
unsafeLinkPrefixdenylist compares entries againsturl.protocol. Since the protocol for data URIs is simplydata:, entries likedata:text/htmlare never matched. This allows aniframesrccontainingdata:text/htmlto bypass sanitization and execute scripts in an opaque origin upon loading.
Recommendations
Update @nuxtjs/mdc to version 0.22.1.
Exploit
Fix
Incomplete List of Disallowed Inputs
XSS
Found an issue in the description? Have something to add? Feel free to write us 👾
Related Identifiers
Affected Products
@Nuxtjs/Mdc