If you're running SiYuan or any application that accepts user-provided SVG and runs it through an HTML-oriented sanitizer, you need to understand what's actually happening here: this isn't a missing check, it's a structural mismatch between what your sanitizer assumes and what the browser does.
The elements at issue — desc, style, and noscript — are treated as raw text containers under HTML parsing rules. Your sanitizer sees them, recognizes them as non-executable, and passes them through. But SVG uses a different content model. When the browser renders content as image/svg+xml rather than HTML, those same elements become active SVG constructs. The sanitizer isn't failing to catch something; it's applying HTML parsing logic to a context where that logic simply doesn't apply.
This is a pattern with a long history. The HTML-in-SVG bypass class has appeared repeatedly since at least 2010, in different sanitizers, different applications, and different contexts. Each time the fix is a new element added to a blocklist. Each time the underlying architectural problem — using an HTML parser to sanitize content that may be interpreted as SVG — remains. You cannot parse your way out of an interpretation problem.
For SiYuan specifically, consider the broader blast radius. This is a note-taking application where notes are persistent, shareable, and exportable. Even if the CVE describes an authenticated attacker injecting content, the actual impact extends to anyone who views, shares, or exports those notes. If SiYuan supports plugins, that widens the blast radius further — script execution in the application origin becomes a pivot point into plugin capabilities.
What to do: verify whether your SiYuan deployment accepts SVG in any user-controllable context and whether that content is rendered in image/svg+xml mode. If it does, SVG input is currently an attack surface, and disabling it is the only reliable mitigation until you can confirm the patch addresses the architectural gap rather than just adding elements to a blocklist. The deeper fix is content-type isolation — rendering user SVG in a sandboxed or cross-origin context so that execution cannot reach your application origin regardless of what content model quirks SVG invents next.