CVE-2026-41674
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 43 - wyżej niż 43% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący może wstrzyknąć dowolny znacznik XML/HTML, co może prowadzić do ataków typu XML Injection lub innych manipulacji danymi wyjściowymi.
Rekomendacja
Zaleca się aktualizację @xmldom/xmldom do wersji 0.9.10 lub 0.8.13, a w przypadku xmldom do wersji nowszej niż 0.6.0.
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-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. 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.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

