CVE-2022-50998
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 28 - wyżej niż 28% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący może wykorzystać te luki do spowodowania awarii aplikacji lub uszkodzenia pamięci, co może prowadzić do naruszenia integralności danych i dostępności.
Rekomendacja
Zaktualizuj Nokogiri do wersji 1.13.9 lub nowszej, która zawiera libxml2 v2.10.3.
Inne podatności w Nokogiri
Zobacz wszystkie- 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.
- 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.
- 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.
Oryginalny opis (angielski, źródło NVD)
Nokogiri before 1.13.9 (CRuby implementation using packaged libraries) bundles libxml2 v2.9.14, which is affected by CVE-2022-40304 (data corruption / double-free from an entity reference cycle when entity content is allocated from a dict) and CVE-2022-40303 (integer overflows when parsing with XML_PARSE_HUGE). Nokogiri 1.13.9 upgrades the packaged libxml2 to v2.10.3 to address these issues. Processing crafted XML input may lead to denial of service or memory corruption. (The advisory also references CVE-2022-2309, a NULL pointer dereference via iterwalk/canonicalize, which maintainers determined does not affect Nokogiri users.)

