CVE-2026-83612
WysokieCVSS 8.7Streszczenie
xmldom to moduł JavaScript implementujący DOMParser i XMLSerializer. W wersjach od 0.9.0-beta.1 do 0.9.12, parsowanie w trybie HTML przez DOMParser.parseFromString() nieprawidłowo obsługuje zamykające tagi o mieszanej wielkości liter dla elementów script, style, textarea i title. Prowadzi to do niestabilnego działania parsera i kwadratowej amplifikacji wyjścia. Mały dokument text/html może zużyć nadmierne CPU i pamięć. Problem naprawiono w wersji 0.9.12.
Ocena ryzyka
Atakujący może spowodować odmowę usługi (DoS) poprzez wysłanie małego dokumentu HTML, który spowoduje nadmierne zużycie CPU i pamięci podczas parsowania i serializacji.
Rekomendacja
Zaleca się aktualizację @xmldom/xmldom do wersji 0.9.12 lub nowszej, która zawiera poprawkę.
Inne podatności w @xmldom/xmldom
Zobacz wszystkie- CVE-2026-83619Wysokie
xmldom to moduł JavaScript implementujący DOMParser i XMLSerializer. W wersjach od 0.7.0 do 0.8.15 parser w lib/sax.js używa niezakotwiczonego wyrażenia globalnego do przycinania nazw tagów końcowych, co prowadzi do kwadratowego cofania się przy długich ciągach białych znaków. Mały nieuwierzytelniony dokument XML może zablokować pętlę zdarzeń Node.js. Problem naprawiono w wersji 0.8.15.
- CVE-2026-83618Wysokie
xmldom to moduł JavaScript implementujący DOMParser i XMLSerializer. W wersjach od 0.9.10 do 0.9.12 walidacja DocumentType.publicId i systemId przy użyciu wyrażeń z flagą multiline pozwala na obejście sprawdzania poprawności i wstrzyknięcie znaczników do deklaracji <!DOCTYPE>. Problem naprawiono w wersji 0.9.12.
- CVE-2026-83617Wysokie
xmldom to moduł JavaScript implementujący DOMParser i XMLSerializer. W wersjach od 0.9.11 do 0.9.12 sprawdzanie nazw elementów i atrybutów przy użyciu wyrażenia QName_exact z flagą multiline pozwala na obejście walidacji i wstrzyknięcie znaczników do nazw elementów lub atrybutów. Problem naprawiono w wersji 0.9.12.
- CVE-2026-83616Wysokie
xmldom to moduł JavaScript implementujący DOMParser i XMLSerializer. Przed wersjami 0.8.15 i 0.9.12 oraz w xmldom 0.6.0 i starszych, Document.createProcessingInstruction() akceptuje niezwalidowany target, co pozwala na wstrzyknięcie struktury XML przez złamanie granicy instrukcji przetwarzania. Problem naprawiono w wersjach 0.8.15 i 0.9.12; dla xmldom brak poprawki.
- CVE-2026-83615Wysokie
xmldom to moduł JavaScript implementujący DOMParser i XMLSerializer. Przed wersjami 0.8.15 i 0.9.12 oraz w xmldom 0.1.5-0.6.0, appendElement w lib/sax.js klonuje całą mapę przestrzeni nazw dla każdego zagnieżdżonego elementu, co prowadzi do kwadratowego zużycia pamięci. Mały dokument XML może wyczerpać pamięć procesu. Problem naprawiono w wersjach 0.8.15 i 0.9.12; dla xmldom brak poprawki.
- CVE-2026-83614Wysokie
xmldom to moduł JavaScript implementujący DOMParser i XMLSerializer. Przed wersjami 0.8.15 i 0.9.12 oraz w xmldom 0.3.0-0.6.0, dwie niezależne ścieżki kwadratowe mogą powodować odmowę usługi: parseElementStartPart wielokrotnie skanuje uszkodzoną nazwę tagu, a normalize() wielokrotnie usuwa i dodaje sąsiednie węzły tekstowe. Problem naprawiono w wersjach 0.8.15 i 0.9.12; dla xmldom brak poprawki.
- CVE-2026-83613Wysokie
xmldom to moduł JavaScript implementujący DOMParser i XMLSerializer. Przed wersjami 0.8.15 i 0.9.12 oraz w xmldom 0.6.0 i starszych, DOMHandler.startElement wstawia każdy atrybut przez setAttributeNode, a NamedNodeMap.setNamedItem wykonuje liniowe wyszukiwanie, co prowadzi do kwadratowej złożoności przy wielu atrybutach. Mały dokument XML może zablokować pętlę zdarzeń Node.js. Problem naprawiono w wersjach 0.8.15 i 0.9.12; dla xmldom brak poprawki.
- CVE-2026-41675Wysokie
Biblioteka @xmldom/xmldom przed wersjami 0.9.10 i 0.8.13 oraz xmldom w wersji 0.6.0 i starszych nie waliduje danych instrukcji przetwarzania, co pozwala atakującemu na wstrzyknięcie sekwencji zamykającej ?> i dodanie dowolnych węzłów XML do wynikowego dokumentu.
- CVE-2026-41673Wysokie
W bibliotece @xmldom/xmldom przed wersjami 0.9.10 i 0.8.13 oraz w xmldom 0.6.0 i starszych, siedem rekurencyjnych przejść w pliku lib/dom.js działa bez ograniczenia głębokości. Zbyt głęboko zagnieżdżone drzewo DOM powoduje błąd RangeError: przekroczenie maksymalnego rozmiaru stosu wywołań, co prowadzi do awarii aplikacji.
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-beta.1 until 0.9.12, HTML-mode parsing through DOMParser.parseFromString() mishandles a mixed-case closing tag for the script, style, textarea, or title raw-text elements. parseHtmlSpecialContent, selected by isHTMLRawTextElement or isHTMLEscapableRawTextElement, uses a case-sensitive indexOf() and then calls substring() with a missing-close result of negative one, causing unstable parser progression and quadratic output amplification. A small untrusted text/html document can consequently consume disproportionate CPU and memory when parsed and serialized. This issue is fixed in @xmldom/xmldom version 0.9.12.

