REDHAT-BUG-2467620: High severity npm/@xmldom/xmldom vulnerability
xmldom is a pure JavaScript W3C standard-based (XML DOM Level 2 Core) DOMParser and XMLSerializer module. In @xmldom/xmldom prior to versions 0.9.10 and 0.8.13 and xmldom version 0.6.0 and prior, the package serializes DocumentType node fields (internalSubset, publicId, systemId) verbatim without any escaping or validation. When these fields are set programmatically to attacker-controlled strings, XMLSerializer.serializeToString can produce output where the DOCTYPE declaration is terminated early and arbitrary markup appears outside it. This issue has been patched in versions @xmldom/xmldom versions 0.9.10 and 0.8.13.
Affected Software
Event History
Frequently Asked Questions
What application behavior is required for exploitation?
An application must programmatically set DocumentType internalSubset, publicId, or systemId to attacker-controlled strings and then call XMLSerializer.serializeToString. The unsafe output occurs because those fields are serialized verbatim.
Which releases contain the stated fix?
The issue is patched in @xmldom/xmldom 0.9.10 and 0.8.13. The data identifies xmldom 0.6.0 and earlier as affected, but does not state a fixed release for that package.
How can I determine whether my application may be exposed?
Check whether it depends on @xmldom/xmldom below 0.9.10 or 0.8.13, or on xmldom 0.6.0 or earlier. Review code paths that construct DocumentType nodes, assign any of the three affected fields from untrusted input, and serialize the resulting document.