CVE-2026-83609
WysokieCVSS 8.7Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 25 - wyżej niż 25% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący może dostarczyć specjalnie spreparowaną nazwę, która po serializacji może wstrzyknąć złośliwy kod XML/HTML, co może prowadzić do ataków XSS w przeglądarce.
Rekomendacja
Zaktualizuj bibliotekę @xmldom/xmldom do wersji 0.9.12 lub nowszej.
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-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.
- CVE-2026-34601Wysokie
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).
Oryginalny opis (angielski, źródło NVD)
xmldom is a pure JavaScript W3C standard-based (XML DOM Level 2 Core) DOMParser and XMLSerializer module. From 0.9.0 until 0.9.12, the shared reg() builder in lib/grammar.js compiles the anchored QName_exact validator with the multiline flag, so ^ and $ validate only one line instead of the complete name. createElementNS, createAttributeNS, createDocumentType, and createAttribute consequently accept a malformed XML name whose first line is valid and whose later text injects markup when serialized through either the default path or requireWellFormed: true. The triggering ECMAScript line terminators are U+000A, U+000D, U+2028, and U+2029. This issue is fixed in @xmldom/xmldom version 0.9.12.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

