CVE-2026-34601
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 38 - wyżej niż 38% wszystkich znanych CVE
Streszczenie
W bibliotece xmldom (wersje 0.6.0 i starsze) oraz @xmldom/xmldom (przed 0.8.12 i 0.9.9) stwierdzono podatność polegającą na możliwości wstawienia przez atakującego ciągu zawierającego terminator CDATA ]]> do węzła CDATASection. Podczas serializacji XMLSerializer emitował zawartość CDATA dosłownie, bez odrzucania lub bezpiecznego dzielenia terminatora, co umożliwiało wstrzyknięcie struktury XML i manipulację logiką biznesową. Podatność została załatana w wersjach 0.6.0 (xmldom) oraz 0.8.12 i 0.9.9 (@xmldom/xmldom).
Ocena ryzyka
Atakujący może wstrzyknąć złośliwy kod XML do danych wyjściowych, co może prowadzić do manipulacji logiką biznesową aplikacji lub ataków typu XML injection.
Rekomendacja
Zaktualizuj bibliotekę xmldom do wersji 0.6.0 lub nowszej, a @xmldom/xmldom do wersji 0.8.12 lub 0.9.9.
Inne podatności w xmldom
Zobacz wszystkie- CVE-2026-83611Średnie
xmldom to moduł DOMParser i XMLSerializer w czystym JavaScript. Przed wersjami @xmldom/xmldom 0.8.15 i 0.9.12 oraz w xmldom 0.6.0 i wcześniejszych, DOMParser.parseFromString() może po cichu zaakceptować tag zamykający taki jak </a\njunk>, zamknąć element i odrzucić końcową treść. W wersjach 0.9.x walidator tagów końcowych w lib/sax.js dziedziczy flagę multiline z reg(), co pozwala pierwszej linii spełnić zakotwiczoną produkcję XML ETag; starsze linie nie mają równoważnej walidacji. Ta różnica w parserze może ominąć bramkę poprawności przed zaufaniem, chociaż nie wstrzykuje odrzuconej treści; onError w 0.9.x i errorHandler w 0.8.x to odpowiednie interfejsy raportowania. Problem naprawiono w @xmldom/xmldom 0.8.15 i 0.9.12; brak poprawki dla xmldom.
- CVE-2026-83610Średnie
xmldom to moduł DOMParser i XMLSerializer w czystym JavaScript. Przed wersjami @xmldom/xmldom 0.8.15 i 0.9.12 oraz w xmldom 0.6.0 i wcześniejszych, Document.createEntityReference(name) akceptuje nieprawidłową nazwę, a serializer ENTITY_REFERENCE_NODE emituje wynikową nodeName bezpośrednio w formie &name;. Bezpośrednia serializacja węzła lub fragmentu za pomocą XMLSerializer.serializeToString() z requireWellFormed: true może złamać granicę encji i wyprodukować kontrolowany przez atakującego markup XML po ponownym parsowaniu. Parser zwykle nie tworzy tych węzłów, a wstawianie jako dziecko elementu jest odrzucane, więc wykorzystanie wymaga, aby aplikacja utworzyła i bezpośrednio zserializowała EntityReference. Problem naprawiono w @xmldom/xmldom 0.8.15 i 0.9.12; brak poprawki dla xmldom.
- CVE-2026-83609Wysokie
W bibliotece xmldom w wersjach od 0.9.0 do 0.9.11 walidator QName_exact używa flagi multiline, przez co akceptuje nieprawidłowe nazwy XML zawierające znaki nowej linii. Może to prowadzić do wstrzyknięcia znaczników podczas serializacji.
- CVE-2026-83608Wysokie
W bibliotece xmldom przed wersjami 0.8.15 i 0.9.12 oraz w wersji 0.6.0 i starszych, nazwa DocumentType.name nie jest walidowana i może zawierać znaki > lub białe, co pozwala na przerwanie deklaracji DOCTYPE i wstrzyknięcie dodatkowych znaczników.
- CVE-2026-83607Wysokie
W bibliotece xmldom przed wersjami 0.8.14 i 0.9.11 oraz w wersji 0.6.0 i starszych, nazwa elementu w createElement nie jest walidowana, a XMLSerializer emituje ją bez zmian. Może to prowadzić do wstrzyknięcia atrybutów, elementów lub instrukcji przetwarzania do serializowanego XML/HTML.
- CVE-2026-83606Wysokie
W bibliotece xmldom od wersji 0.9.0-beta.9 do 0.9.11, wyrażenie używane do parsowania instrukcji przetwarzania może powodować kwadratowe cofanie się (backtracking) przy długich ciągach białych znaków, gdy brakuje zamykającego ?>. Może to zablokować pętlę zdarzeń Node.js.
- CVE-2026-83605Wysokie
W bibliotece xmldom przed wersjami 0.8.14 i 0.9.11 oraz w wersji 0.6.0 i starszych, metoda Element.setAttribute() nie waliduje nazwy atrybutu, a XMLSerializer emituje ją bez zmian. Może to prowadzić do wstrzyknięcia dodatkowych atrybutów, w tym obsługi zdarzeń.
- CVE-2026-41674Wysokie
Podatność w @xmldom/xmldom przed wersjami 0.9.10 i 0.8.13 oraz xmldom w wersji 0.6.0 i wcześniejszych. Pakiet serializuje pola DocumentType (internalSubset, publicId, systemId) bez odpowiedniego escapingu, co może prowadzić do przedwczesnego zakończenia deklaracji DOCTYPE i wstrzyknięcia dowolnego znacznika.
- CVE-2026-41672Wysokie
Podatność w bibliotece xmldom pozwala atakującemu na wstrzyknięcie dowolnych węzłów XML do serializowanego wyjścia poprzez kontrolowaną treść komentarza. Brak walidacji sekwencji zamykających komentarz umożliwia przedwczesne zakończenie komentarza i wstawienie złośliwego kodu XML.
Oryginalny opis (angielski, źródło NVD)
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.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

