CVE-2026-103634
ŚrednieCVSS 5.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 15 - wyżej niż 15% wszystkich znanych CVE
Streszczenie
Podatność w deserializacji Count-Min sketch w Apache DataSketches C++ (wersje 4.1.0 do 5.3.0) polega na braku uwzględnienia preambuły w sprawdzaniu rozmiaru wejścia, co może prowadzić do odczytu poza granicami bufora. Dodatkowo rozmiar tabeli jest obliczany w 32-bitowej arytmetyce, co może spowodować przepełnienie do zera i późniejsze odczyty/zapisy poza alokacją, uszkadzając pamięć sterty.
Ocena ryzyka
Aplikacje deserializujące szkice Count-Min z niezaufanych źródeł mogą doświadczyć uszkodzenia pamięci, awarii, a potencjalnie umożliwić dalszą eksploatację. Może to prowadzić do odmowy usługi lub wykonania kodu.
Rekomendacja
Zaktualizuj Apache DataSketches C++ do wersji 5.3.0 lub nowszej. Unikaj deserializacji szkiców z niezaufanych źródeł.
Inne podatności w Apache DataSketches C++
Zobacz wszystkie- CVE-2026-103635Krytyczne
Podatność typu out-of-bounds read w deserializacji kompaktowego szkicu Theta w Apache DataSketches C++ (datasketches-cpp). Funkcje compact_theta_sketch::deserialize() i wrapped_compact_theta_sketch::wrap() odczytywały pola nagłówka przed sprawdzeniem długości danych; w formacie skompresowanym sprawdzenie rozmiaru mogło zostać obejście przez przepełnienie 32-bitowe. Spreparowany lub obcięty szkic może powodować odczyt poza końcem bufora, duży w przypadku skompresowanym, co może prowadzić do awarii i ujawnienia pamięci. Dotyczy wersji od 3.1.0 do 5.3.0.
- CVE-2026-103513Krytyczne
Podatność typu out-of-bounds read i write w deserializacji szkicu CPC w Apache DataSketches C++ (datasketches-cpp). Spreparowany szkic CPC przekazany do cpc_sketch::deserialize() może spowodować odczyt poza końcem skompresowanych danych, a w wariancie hybrydowym także zapis poza wewnętrznym buforem sterty z powodu braku walidacji indeksów wierszy. Może to uszkodzić pamięć sterty, powodując awarię i potencjalnie umożliwiając dalszą eksploatację. Dotyczy wersji od 2.0.0-incubating do 5.3.0.
- CVE-2026-103501Krytyczne
Podatność typu heap buffer overflow w deserializacji szkicu HLL w Apache DataSketches C++ (datasketches-cpp). Przy deserializacji szkicu w trybie LIST liczba kuponów była odczytywana z danych wejściowych i używana jako liczba wpisów kopiowanych do stałego bufora o rozmiarze 8, bez sprawdzenia pojemności. Spreparowany szkic może spowodować zapis do 988 bajtów poza końcem bufora sterty, uszkadzając pamięć. Dotyczy wersji od 1.0.0-incubating do 5.3.0.
- CVE-2026-103636Wysokie
Podatność typu out-of-bounds read w deserializacji unii VarOpt w Apache DataSketches C++ (datasketches-cpp). Funkcja var_opt_union::deserialize() odczytywała 32-bajtowy nagłówek po sprawdzeniu dostępności tylko 8 bajtów, co przy obciętych danych mogło powodować odczyt do 24 bajtów poza końcem bufora. Może to prowadzić do awarii (odmowa usługi) i ujawnienia sąsiedniej pamięci. Dotyczy wersji od 2.0.0-incubating do 5.3.0.
Oryginalny opis (angielski, źródło NVD)
Out-of-bounds read and write in the Count-Min sketch deserialization of Apache DataSketches C++ (repo: datasketches-cpp). count_min_sketch::deserialize() did not include the preamble in its input size check, so a truncated sketch could cause a read of up to 16 bytes past the end of the input. In addition, the table size was computed from the serialized number of buckets and number of hash functions in 32-bit arithmetic. A crafted sketch could make it wrap to zero, so that the sketch deserialized with an empty table, and later updates and estimate queries read and wrote outside the heap allocation. This can corrupt heap memory, causing a crash and potentially enabling further exploitation. This issue affects Apache DataSketches C++: from 4.1.0 before 5.3.0. Only applications that deserialize Count-Min sketches from untrusted sources are affected. Users are recommended to upgrade to version 5.3.0, which fixes this issue.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

