CVE-2026-48515
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 14 - wyżej niż 14% wszystkich znanych CVE
Streszczenie
MessagePack dla C# przed wersjami 2.5.301 i 3.1.7 ma podatność, która pozwala na alokację dużych tablic wielowymiarowych przed walidacją danych. W wyniku tego, mały ładunek może zadeklarować duże wymiary, co prowadzi do nieefektywnego wykorzystania pamięci.
Ocena ryzyka
Organizacje mogą doświadczyć problemów z wydajnością i wykorzystaniem pamięci, co może prowadzić do awarii aplikacji lub odmowy usługi.
Rekomendacja
Zaleca się aktualizację do wersji 2.5.301 lub 3.1.7, aby usunąć tę podatność.
Inne podatności w MessagePack for C#
Zobacz wszystkie- CVE-2026-48509Krytyczne
MessagePack dla C# przed wersjami 2.5.301 i 3.1.7 używa domyślnych opcji serializacji, które mogą prowadzić do ataków typu denial-of-service. Domyślny konstruktor MessagePackInputFormatter() jest niebezpieczny, ponieważ może narażać aplikacje na ataki kolizji haszy w modelach przypominających słowniki.
- CVE-2026-48517Wysokie
W bibliotece MessagePack dla C# występuje podatność związana z deserializacją typów, która nie sprawdza rekurencyjnie typów elementów tablicy ani argumentów typów generycznych. To może prowadzić do sytuacji, w której niebezpieczny typ, który powinien być zablokowany, może zostać zdeserializowany, jeśli jest opakowany w tablicę lub typ generyczny.
- CVE-2026-48516Wysokie
W bibliotece MessagePack dla C# występuje podatność, która dotyczy konstrukcji wewnętrznego słownika z domyślnym porównywaczem równości. Wersje przed 2.5.301 i 3.1.7 są narażone na atak typu denial of service z wykorzystaniem kolizji haszów.
- CVE-2026-48514Wysokie
W bibliotece MessagePack dla C# przed wersjami 2.5.301 i 3.1.7 występuje podatność, która pozwala na odczytanie długości bajtów kontrolowanej przez atakującego z ładunku rozszerzenia. W wyniku tego, możliwe jest przydzielenie dużej tablicy T[] bez odpowiedniej walidacji, co może prowadzić do problemów z alokacją pamięci.
- CVE-2026-48513Wysokie
W bibliotece MessagePack dla C# przed wersjami 2.5.301 i 3.1.7 występuje podatność związana z deserializacją unii, która nie przestrzega ograniczenia głębokości obiektów. Deserializatory generowane w czasie wykonywania nie wywołują odpowiednich kroków zabezpieczających, co prowadzi do potencjalnych problemów z bezpieczeństwem.
- CVE-2026-48512Wysokie
MessagePack for C# przed wersjami 2.5.301 i 3.1.7 zawiera wielokrotne ścieżki rekurencyjne w komponentach konwersji JSON, które nie egzekwują limitu głębokości. Te ścieżki mogą prowadzić do wyczerpania stosu procesora i wywołania nieuchwytnego wyjątku StackOverflowException.
- CVE-2026-48511Wysokie
MessagePack dla C# ma podatność w metodzie Deserializacji ExpandoObjectFormatter, która może prowadzić do znacznego obciążenia CPU i pamięci w przypadku dużych map kontrolowanych przez atakującego. Problem ten występuje przed wersjami 2.5.301 i 3.1.7.
- CVE-2026-48510Wysokie
MessagePack dla C# ma podatność, która pozwala na nieprawidłowe alokacje pamięci podczas dekompresji danych Lz4Block lub Lz4BlockArray. Przed wersjami 2.5.301 i 3.1.7, nie weryfikowano poprawności danych skompresowanych przed alokacją buforów wyjściowych.
- CVE-2026-48506Wysokie
MessagePack dla C# ma podatność, która pozwala na rekurencyjne zstępowanie w głąb zagnieżdżonych tablic i map bez odpowiednich kontroli głębokości. Może to prowadzić do nieograniczonej rekurencji i wyjątku StackOverflow.
- CVE-2026-48502Wysokie
W bibliotece MessagePack dla C# przed wersjami 2.5.301 i 3.1.7, metoda MessagePackReader.ReadDateTime() może alokować pamięć na stosie na podstawie długości rozszerzenia kontrolowanej przez atakującego. W przypadku analizy rozszerzenia znaczników czasowych, długość ciała rozszerzenia nie jest weryfikowana przed alokacją pamięci, co może prowadzić do wystąpienia wyjątku StackOverflowException.
Oryginalny opis (angielski, źródło NVD)
MessagePack for C# is a MessagePack serializer for C#. Prior to 2.5.301 and 3.1.7, MessagePack-CSharp's multi-dimensional array formatters read dimension lengths directly from the payload and allocate T[,], T[,,], or T[,,,] before validating that the dimension product matches the encoded element count. The formatter reads a guarded element array header, but allocation of the target multi-dimensional array happens before the dimensions are checked against that element count. A small payload can therefore declare large dimensions, provide an empty or tiny inner array, and cause a large heap allocation before element data is validated. This vulnerability is fixed in 2.5.301 and 3.1.7.

