Podatności Nokogiri
23 znanych podatności CVE w Nokogiri, przetłumaczonych i ocenionych.
- GHSA-g9g8-vgvw-g3vfNieznane
Podatność w bibliotece Nokogiri dotyczy funkcji pomocniczej kopiowania chronionego używanej przez metody Node#dup i #clone. Funkcja ta rozwijała argument źródłowy jako xmlNode bez sprawdzenia typu, co przy przekazaniu obiektu niebędącego węzłem (np. Namespace) powodowało odczyt poza zakresem struktury xmlNs i awarię procesu. Wersja 1.19.4 dodaje sprawdzanie typu i zgłasza wyjątek TypeError.
- GHSA-5prr-v3j2-97mhŚrednie
Podatność w bibliotece Nokogiri dotyczy metody `Nokogiri::XML::NodeSet#[]` (oraz jej aliasu `#slice`). Sprawdzanie indeksu względem zakresu zestawu węzłów odbywało się na 32-bitowej kopii indeksu, co pozwalało na użycie dużej ujemnej wartości indeksu, która po sprawdzeniu była używana w pełnej szerokości, prowadząc do odczytu poza przechowywanym zestawem węzłów.
- GHSA-5v8h-3h3q-446pNiskie
Podatność w bibliotece Nokogiri pozwala na wywołanie metody `Document#encoding=` z nieprawidłowym kodowaniem (np. niebędącym ciągiem znaków lub zawierającym bajt null), co powoduje zwolnienie bieżącego ciągu kodowania dokumentu bez jego zastąpienia. Dokument pozostaje z odwołaniem do zwolnionej pamięci, co prowadzi do użycia po zwolnieniu (use-after-free) przy następnym wywołaniu.
- GHSA-8678-w3jw-xfc2Niskie
Podatność w bibliotece Nokogiri dla JRuby powoduje, że opcja NONET nie jest poprawnie egzekwowana podczas parsowania schematów XML. Umożliwia to atakującemu wczytanie zewnętrznych zasobów sieciowych, co może prowadzić do wycieku danych lub ataków SSRF.
- GHSA-9cv2-cfxc-v4v2Niskie
Nokogiri zawiera błąd w metodach wywoływanych na zaalokowanych, ale niezainicjalizowanych klasach opakowujących dziedziczących po `Nokogiri::XML::Node`. Powoduje to dereferencję wskaźnika NULL, co może doprowadzić do awarii procesu.
- GHSA-p67v-3w7g-wjg7Niskie
Podatność w bibliotece Nokogiri powoduje, że obiekt `Nokogiri::XML::XPathContext` nie utrzymuje przy życiu dokumentu źródłowego dla garbage collectora. Jeśli kontekst XPath przeżyje dokument, a dokument zostanie zebrany, ewaluacja wyrażenia XPath może odczytać nieprawidłową pamięć i potencjalnie spowodować segfault.
- GHSA-phwj-rprq-35ppNiskie
Rozszerzenie natywne CRuby biblioteki Nokogiri może pozostawić wskaźnik Ruby wskazujący na zwolnioną pamięć podczas zastępowania wartości atrybutu XML. Jeśli kod Ruby uzyskał już dostęp do węzła potomnego atrybutu, metoda `Nokogiri::XML::Attr#value=` może zwolnić bazowy węzeł potomny, podczas gdy opakowanie Ruby pozostaje.
- GHSA-wjv4-x9w8-wm3hNiskie
Podatność w bibliotece Nokogiri pozwala na ustawienie węzła DTD jako korzenia dokumentu XML, co prowadzi do użycia po zwolnieniu pamięci (use-after-free) podczas czyszczenia pamięci lub finalizacji. Skutkuje to nieprawidłowym odczytem pamięci lub potencjalnym segfaultem.
- GHSA-wfpw-mmfh-qq69Niskie
Podatność w bibliotece Nokogiri dotyczy metody `Nokogiri::XML::Node#do_xinclude`, która podczas przetwarzania XInclude usuwa węzły `<xi:include>` wraz z ich dziećmi (np. `<xi:fallback>`) i zadeklarowanymi przestrzeniami nazw. Jeśli aplikacja wcześniej uzyskała dostęp do tych węzłów, może dojść do nieoczekiwanego zachowania.
- CVE-2025-71407Krytyczne
Nokogiri przed wersją 1.18.3 zawiera podatność na przepełnienie bufora stosu w libxml2 podczas raportowania błędów walidacji DTD z długimi prefiksami QName oraz podatność use-after-free podczas walidacji przeciwko niezaufanym schematom XML. Atakujący mogą wywołać te podatności, dostarczając złośliwe treści DTD lub niezaufane pliki XSD, co może prowadzić do odmowy usługi lub potencjalnego wykonania kodu.
- CVE-2024-58378Krytyczne
Nokogiri przed wersją 1.15.6 oraz wersje 1.16.x przed 1.16.2 (CRuby, przy użyciu pakietowego libxml2) są dotknięte podatnością use-after-free w libxml2 (CVE-2024-25062) w module xmlTextReader, który stanowi podstawę Nokogiri::XML::Reader. Podczas korzystania z interfejsu XML Reader z włączoną walidacją DTD i rozwijaniem XInclude, przetwarzanie spreparowanego dokumentu XML może prowadzić do use-after-free w xmlValidatePopElement. Nokogiri 1.15.6 i 1.16.2 rozwiązują ten problem poprzez aktualizację pakietowego libxml2 odpowiednio do 2.11.7 i 2.12.5. JRuby i instalacje używające systemowego libxml2 nie są dotknięte.
- CVE-2022-51000Krytyczne
Nokogiri przed wersją 1.13.2 zawiera dołączone biblioteki libxml2 2.9.12 i libxslt 1.1.34, które mają dwie znane podatności. Poprzez CVE-2021-30560 w libxslt, aplikacja przetwarzająca XML z niezaufanymi arkuszami XSL może być podatna na atak DoS. Poprzez CVE-2022-23308 w libxml2, aplikacja parsująca niezaufany dokument z opcjami DTDVALID=true i NOENT=false może być podatna na DoS, ujawnienie pamięci lub wykonanie kodu.
- CVE-2026-79772Średnie
Nokogiri przed wersją 1.19.1 nie sprawdza wartości zwracanej przez xmlC14NExecute w metodzie canonicalize, zwracając pusty ciąg w przypadku błędu zamiast zgłosić wyjątek. Atakujący mogą to wykorzystać do obejścia walidacji podpisu w bibliotekach SAML niższego poziomu, dostarczając nieprawidłowy zkanonizowany XML, który jest błędnie akceptowany jako prawidłowy.
- CVE-2026-79771Średnie
Nokogiri przed wersją 1.19.3 zawiera wyciek pamięci w metodzie transform stylu XSLT podczas przetwarzania ciągów Ruby zawierających bajty zerowe. Atakujący mogą to wykorzystać, przekazując kontrolowane dane wejściowe z bajtami zerowymi do parametrów transform, powodując wyciek alokacji sterty i umożliwiając odmowę usługi dla długo działających procesów.
- CVE-2026-79770Wysokie
Nokogiri w wersjach przed 1.19.3 zawiera podatności na odmowę usługi przez wyrażenia regularne w tokenizatorze selektorów CSS, dotyczące tokenizacji literałów łańcuchowych i identyfikatorów. Atakujący mogą wstrzyknąć złośliwe selektory CSS do metod takich jak Node#css, Node#at_css i Searchable#search, powodując wykładnicze cofanie się wyrażeń regularnych i odmowę usługi.
- CVE-2026-79769Średnie
Nokogiri przed wersją 1.19.4 zawiera możliwy nieprawidłowy odczyt pamięci (poza zakresem) w chronionej metodzie wewnętrznej Node#initialize_copy_with_args, używanej przez Node#dup i #clone, która rozpakowywała swój argument źródłowy jako xmlNode bez sprawdzenia typu. Jeśli kod aplikacji wywoła tę chronioną metodę z argumentem niebędącym Node (np. Namespace), odczytuje xmlNs poza zakresem, powodując awarię procesu. Jest to wyzwalane tylko przez błąd programistyczny i nie może być wyzwolone przez niezaufane dane wejściowe ani normalne użycie publicznego API. Dotyczy tylko CRuby. Wersja 1.19.4 dodaje sprawdzenie typu i zgłasza TypeError.
- CVE-2025-71406Wysokie
Nokogiri przed wersją 1.18.4 zawiera podatną wersję libxslt (przed 1.1.43) z dwiema lukami use-after-free: CVE-2025-24855 i CVE-2024-55549. Przetwarzanie spreparowanych XSLT może prowadzić do uszkodzenia pamięci. Wersja 1.18.4 aktualizuje libxslt do 1.1.43.
- CVE-2025-71346Niskie
Nokogiri przed wersją 1.18.8 zawiera podatność w pakietowanej wersji libxml2 (przed 2.13.8), która ma problem z niedoczytaniem bufora na stercie (CVE-2025-32415) w funkcji xmlSchemaIDCFillNodeTables w xmlschemas.c. Problem może być wywołany podczas walidacji względem niezaufanego schematu XML lub walidacji niezaufanych dokumentów względem zaufanych schematów używających xsd:keyref z rekurencyjnie zdefiniowanymi typami.
- CVE-2024-58377Średnie
Nokogiri w wersjach przed 1.16.5 zawiera libxml2 2.12.6, który jest dotknięty podatnością CVE-2024-34459 w narzędziu xmllint. Nokogiri 1.16.5 aktualizuje libxml2 do 2.12.7, aby to naprawić. Według opiekunów projektu, nie ma wpływu na użytkowników Nokogiri, ponieważ Nokogiri nie udostępnia ani nie wystawia narzędzia xmllint, w którym występuje problem.
- CVE-2023-54354Wysokie
Nokogiri przed wersją 1.14.3 (tylko implementacja CRuby z pakietem libxml2) zawiera libxml2 v2.10.3, który jest podatny na dereferencję pustego wskaźnika w przetwarzaniu XML Schema (CVE-2023-28484 i CVE-2023-28485). Atakujący może dostarczyć spreparowany schemat XML, powodując segfault i odmowę usługi.
- CVE-2022-50999Wysokie
Nokogiri przed wersją 1.13.5 zawiera przepełnienie liczby całkowitej w funkcjach bufora libxml2, co pozwala atakującym na zapisy poza zakresem pamięci. Atakujący może wykorzystać to, tworząc wielogigabajtowe pliki XML, co prowadzi do ujawnienia informacji, modyfikacji danych lub odmowy usługi.
- CVE-2022-50998Wysokie
Nokogiri przed wersją 1.13.9 (implementacja CRuby z pakietem libxml2) zawiera libxml2 v2.9.14, który jest podatny na CVE-2022-40304 (uszkodzenie danych / podwójne zwolnienie) i CVE-2022-40303 (przepełnienia liczb całkowitych). Przetwarzanie spreparowanych danych XML może prowadzić do odmowy usługi lub uszkodzenia pamięci.
- CVE-2021-47996Wysokie
Nokogiri przed wersją 1.11.4 (tylko implementacja CRuby z pakietem libxml2) zawiera libxml2 2.9.10, który ma wiele podatności naprawionych w 2.9.12, w tym wyciek pamięci, przepełnienie bufora i odczyty poza zakresem. Przetwarzanie spreparowanych dokumentów XML może prowadzić do odmowy usługi, ujawnienia informacji lub uszkodzenia pamięci.

