CVE-2026-48502
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 15 - wyżej niż 15% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący może wykorzystać tę podatność do spowodowania awarii procesu hosta, co może prowadzić do przerwy w dostępności usług. To stwarza ryzyko dla stabilności aplikacji korzystających z tej biblioteki.
Rekomendacja
Zaleca się aktualizację do wersji 2.5.301 lub 3.1.7, aby usunąć tę podatność. Należy również przeprowadzić audyt kodu, aby upewnić się, że nie występują inne podobne problemy.
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-48515Wysokie
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.
- 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.
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, MessagePackReader.ReadDateTime() can allocate stack memory based on an attacker-controlled MessagePack extension length. In the slow path for timestamp extension parsing, the computed tokenSize includes the extension body length from the wire and is used in a stackalloc operation before the extension length is validated as one of the valid timestamp sizes. A very small payload can claim a large timestamp extension body and cause a stack allocation large enough to trigger an uncatchable StackOverflowException, terminating the host process. This vulnerability is fixed in 2.5.301 and 3.1.7.

