xmldom — это чистый модуль DOMParser и XMLSerializer, основанный на стандарте JavaScript W3C (XML DOM Level 2 Core). В xmldom версий 0.6.0 и более ранних и @xmldom/xmldom до версий 0.8.12 и 0.9.9 xmldom/xmldom позволяет вставлять контролируемые злоумышленником строки, содержащие терминатор CDATA ]]>, в узел CDATASection. Во время сериализации XMLSerializer дословно выдавал содержимое CDATA, не отклоняя и не разделяя терминатор.
В результате данные, которые должны были оставаться только текстовыми, стали активной XML-разметкой в сериализованном выводе, что позволило внедрить структуру XML и выполнить последующие манипуляции с бизнес-логикой. Эта проблема исправлена в версиях xmldom 0.6.0 и @xmldom/xmldom 0.8.12 и 0.9.9.
Показать оригинальное описание (EN)
xmldom is a pure JavaScript W3C standard-based (XML DOM Level 2 Core) `DOMParser` and `XMLSerializer` module. In xmldom versions 0.6.0 and prior and @xmldom/xmldom prior to versions 0.8.12 and 0.9.9, xmldom/xmldom allows attacker-controlled strings containing the CDATA terminator ]]> to be inserted into a CDATASection node. During serialization, XMLSerializer emitted the CDATA content verbatim without rejecting or safely splitting the terminator. As a result, data intended to remain text-only became active XML markup in the serialized output, enabling XML structure injection and downstream business-logic manipulation. This issue has been patched in xmldom version 0.6.0 and @xmldom/xmldom versions 0.8.12 and 0.9.9.
Характеристики атаки
Последствия
Строка CVSS v3.1