Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1336 CNY

100%

CVE-2026-63671— @nuxtjs/mdc: the URL sanitizer misses SVG xlink:href and data:text/html, allowing XSS from untrusted markdown at the default configuration

Quick assessment

Affected
nuxt-content mdc
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

MDC 是一款用于将常规 Markdown 转换为文档、并能够与 Vue 组件进行深度交互的工具。在 0.22.1 版本之前,@nuxtjs/mdc 默认启用 的 选项,并依赖 、 和 来从不可信的 Markdown 内容中移除可执行 URL。其中, 仅检查名为 或 的属性,因此表示 SVG 的 值可以保留 URL,当用户点击时会在页面源中执行。此外, 的黑名单条目是与 进行对比,而 仅识别 ,因此包含 的 的 属性能够绕过净化处理,并在加载时于不透明源(opaque origin)中执行。普通的 上的 URL、

CVSS 8.1 · High

Possible ATT&CK Techniques 1 AI

T1059.007 · JavaScript
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-63671

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
@nuxtjs/mdc: the URL sanitizer misses SVG xlink:href and data:text/html, allowing XSS from untrusted markdown at the default configuration
Source: CVE Program / CVE List V5
Vulnerability Description
MDC is a tool to take regular Markdown and write documents interacting deeply with a Vue component. Prior to 0.22.1, @nuxtjs/mdc uses parseMarkdown with allowDangerousHtml enabled by default and relies on validateProps, validateProp, and unsafeLinkPrefix to remove executable URLs from untrusted Markdown. validateProp checks only attributes named href or src, allowing an SVG xlink:href value represented as xLinkHref to retain a javascript: URL that executes in the page origin when selected. The data:text/html denylist entries are also compared against url.protocol, which is only data:, so an iframe src containing data:text/html survives sanitization and executes in an opaque origin when loaded. Plain href javascript: URLs, srcdoc, object, script, and base elements are already blocked, making these two paths specific sibling gaps in the sanitizer. This issue is fixed in version 0.22.1.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N
Source: CVE Program / CVE List V5
Vulnerability Type
在Web页面生成时对输入的转义处理不恰当(跨站脚本)
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
nuxt-content mdc < 0.22.1 -

II. Public POCs for CVE-2026-63671

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-63671

登录查看更多情报信息。

Patches & Fixes for CVE-2026-63671 (2)

Vendor Advisories for CVE-2026-63671 (1)

Vendor Pages for CVE-2026-63671 (1)

IV. Related Vulnerabilities

V. Comments for CVE-2026-63671

No comments yet


Leave a comment