Podatności Oj
11 znanych podatności CVE w Oj, przetłumaczonych i ocenionych.
- CVE-2026-54903Średnie
Podatność w bibliotece Oj (Optimized JSON) dla języka Ruby przed wersją 3.17.2 powoduje uszkodzenie sterty podczas parsowania ciągu JSON dłuższego niż 2 GB. Błąd przepełnienia liczby całkowitej w funkcji buf_append_string prowadzi do kopiowania ogromnej ilości danych poza dozwolony obszar pamięci.
- CVE-2026-54902Średnie
Biblioteka Oj (Optimized JSON) dla Ruby w wersji przed 3.17.2 zawiera podatność Use-After-Free w trybie SAJ. Obiekt Oj::Parser nie chroni buforowanych kluczy (≥35 bajtów) przed garbage collection, a wywołanie zwrotne Ruby w hash_end może zwolnić pamięć klucza, podczas gdy parser C wciąż przechowuje do niego wskaźnik. Prowadzi to do segfaulta, potwierdzonego przez RIP wskazujący na adres 0x4242.
- CVE-2026-54901Średnie
W bibliotece Oj (Optimized JSON) dla języka Ruby wykryto podatność Use-After-Free w trybie normalnym parsera. Problem występuje, gdy garbage collector usunie obiekty klas array_class i hash_class przed ich użyciem, co prowadzi do dereferencji zwolnionej pamięci i segfaulta.
- CVE-2026-54900Średnie
W bibliotece Oj (Optimized JSON) dla języka Ruby wykryto podatność na uszkodzenie sterty. Gdy klucz obiektu JSON ma dokładnie 65 535 bajtów, dochodzi do obcięcia liczby całkowitej w funkcji form_attr, co powoduje przekazanie ujemnej długości do memcpy i skopiowanie ogromnej ilości danych, prowadząc do awarii procesu. Problem został naprawiony w wersji 3.17.2.
- CVE-2026-54899Średnie
W bibliotece Oj (Optimized JSON) dla języka Ruby wykryto podatność polegającą na użyciu po zwolnieniu pamięci (use-after-free). Wyłączenie opcji symbol_keys na ponownie używanym instancji Oj::Parser powoduje, że wewnętrzna pamięć podręczna kluczy jest zwalniana, ale wskaźnik do niej nie jest zerowany, co prowadzi do odczytu z już zwolnionej pamięci podczas kolejnego parsowania.
- CVE-2026-54898Niskie
W bibliotece Oj (Optimized JSON) dla języka Ruby wykryto podatność na użycie po zwolnieniu (use-after-free) w parserze C. Problem występuje, gdy callback SAJ/SAJ2 modyfikuje parsowany string JSON, powodując ponowną alokację bufora i pozostawienie wiszącego wskaźnika.
- CVE-2026-54897Niskie
Oj (Optimized JSON) to parser JSON i marshaller obiektów spakowany jako gem Ruby. Przed wersją 3.17.2 iteratory Oj::Doc (each_value, each_child, each_leaf) były podatne na użycie po zwolnieniu (use-after-free) sterty. Gdy blok Ruby wywołany podczas iteracji wywołuje doc.close lub d.close, pamięć sterty dokumentu jest zwalniana, podczas gdy iterator C wciąż działa. Po powrocie z bloku iterator odczytuje z zwolnionego obszaru, co prowadzi do podatności dostępnej z czystego Ruby.
- CVE-2026-54896Niskie
W bibliotece Oj (Optimized JSON) dla języka Ruby wykryto podatność na przepełnienie bufora sterty podczas serializacji obiektów Exception z dużą wartością parametru :indent. Problem występuje w wersjach przed 3.17.2 i został naprawiony w tej wersji.
- CVE-2026-54592Wysokie
W bibliotece Oj (Optimized JSON) dla języka Ruby wykryto podatność na odmowę usługi (DoS). Funkcja Oj::Doc#each_child przy rekurencyjnym przetwarzaniu głęboko zagnieżdżonego dokumentu JSON przepełnia bufor stosu o stałym rozmiarze, co powoduje awarię procesu. Problem został naprawiony w wersji 3.17.3.
- CVE-2026-54502Średnie
W bibliotece Oj (Optimized JSON) dla języka Ruby wykryto podatność na przepełnienie bufora stosu w metodzie Oj.dump. Problem występuje, gdy programista ustawi dużą wartość parametru :indent, co prowadzi do zapisu 2 GB danych na stosie i awarii procesu.
- CVE-2026-54500Średnie
W bibliotece Oj (Optimized JSON) dla języka Ruby wykryto podatność polegającą na odczycie niezainicjalizowanej pamięci stosu podczas parsowania kluczy JSON o długości 254 bajtów lub więcej w trybie :object. Błąd występuje w funkcji form_attr(), która przekazuje do rb_intern3() bufor stosu zamiast prawidłowo zaalokowanego bufora sterty, co prowadzi do wycieku danych ze stosu procesu. Problem został naprawiony w wersji 3.17.3.

