<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:webfeeds="http://webfeeds.org/rss/1.0"><channel><title>@Xmldom/Xmldom (0.7.0 - 0.9.10) - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/@xmldom/xmldom-0.7.0---0.9.10/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Wed, 09 Sep 2026 03:48:50 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/@xmldom/xmldom-0.7.0---0.9.10/feed.xml" rel="self" type="application/rss+xml"/><image><url>https://feed.craftedsignal.io/favicon-32x32.png</url><title>CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/</link><width>32</width><height>32</height></image><webfeeds:icon>https://feed.craftedsignal.io/favicon.svg</webfeeds:icon><item><title>Attribute Injection in @xmldom/xmldom via Element.setAttribute</title><link>https://feed.craftedsignal.io/briefs/2026-09-xmldom-attribute-injection/</link><pubDate>Wed, 09 Sep 2026 03:48:50 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-09-xmldom-attribute-injection/</guid><description>The @xmldom/xmldom library fails to validate attribute names during the use of Element.setAttribute, allowing attackers to inject malicious attributes into serialized XML output leading to potential XSS.</description><content:encoded><![CDATA[<p>The @xmldom/xmldom library (CVE-2026-83605) contains an attribute injection vulnerability arising from inconsistent validation between its APIs. While the public <code>Document.createAttribute()</code> method correctly validates attribute names against the XML <code>QName</code> production, the commonly used <code>Element.setAttribute()</code> method calls a private <code>_createAttribute()</code> helper that performs no validation.</p>
<p>The vulnerability allows an attacker to inject characters - such as quotes and spaces - into the attribute name parameter of <code>setAttribute()</code>, effectively terminating the intended attribute and injecting new ones (e.g., <code>onclick</code> event handlers) into the document tree. Because the library's <code>XMLSerializer</code> performs no validation by default, these injected attributes are rendered verbatim in the output. If this output is subsequently parsed by a browser, it can result in Cross-Site Scripting (XSS) or the overriding of security-critical attributes like <code>integrity</code> or <code>Content-Security-Policy</code>. This vulnerability affects versions of <code>@xmldom/xmldom</code> from 0.7.0 through 0.9.10, as well as the legacy <code>xmldom</code> package (&lt;= 0.6.0).</p>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows for arbitrary attribute injection when user-supplied input is reflected in attribute names. This poses a significant risk to web applications using this library to process or generate XML/HTML, as it can lead to XSS, bypass of security constraints, or unauthorized execution of JavaScript if the resulting XML is rendered as HTML in a browser context.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to <code>@xmldom/xmldom</code> version 0.9.11 or 0.8.14 or later to access the new validation features.</li>
<li>Implement the <code>requireWellFormed: true</code> option in all <code>XMLSerializer.serializeToString()</code> calls that process untrusted or partially user-controlled DOM content.</li>
<li>Perform an audit of the codebase to identify all locations where user-provided strings are passed as the 'name' parameter to <code>setAttribute()</code>.</li>
<li>Validate all attribute names against the XML <code>QName</code> production before calling <code>setAttribute()</code> if the library cannot be updated or if strict serialization cannot be enabled.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>xss</category><category>injection</category><category>vulnerability</category><category>web-application</category></item></channel></rss>