CVE-2026-107302
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 36 - wyżej niż 36% wszystkich znanych CVE
Streszczenie
msgpack5 przed wersją 6.1.0 ma podatność, w której dekoder odczytuje czterobajtową długość wartości map32 przed walidacją, czy pełny pięciobajtowy nagłówek jest dostępny. Z tego powodu obcięty nagłówek map32 powoduje sprawdzone odczytanie poza zakresem bufora i rzuca RangeError zamiast IncompleteBufferError, co może nieoczekiwanie zakończyć żądanie, strumień lub worker w aplikacjach oczekujących na dodatkowe bajty po IncompleteBufferError.
Ocena ryzyka
Atakujący może spowodować awarię aplikacji lub przerwanie strumienia, co prowadzi do niedostępności usługi.
Rekomendacja
Zaleca się aktualizację msgpack5 do wersji 6.1.0 lub nowszej.
Inne podatności w msgpack5
Zobacz wszystkie- CVE-2026-107301Średnie
msgpack5 to implementacja msgpack v5 dla node.js i przeglądarki. W wersjach przed 6.1.0 utworzenie msgpack5 z pustym lub częściowym obiektem opcji wyłącza domyślną ochronę protoAction: 'error'. Zdekodowana mapa zawierająca klucz __proto__ może następnie zastąpić prototyp zdekodowanego obiektu, potencjalnie zmieniając dziedziczone właściwości lub dalsze zachowanie, choć Object.prototype nie jest modyfikowany globalnie.
- CVE-2026-107300Wysokie
msgpack5 to implementacja msgpack v5 dla node.js i przeglądarki. Przed wersją 6.1.0, dekoder strumieniowy rekurencyjnie wywołuje sam siebie dla każdej kompletnej wartości MessagePack pozostałej w porcji. Zdalny peer może wysłać jedną porcję zawierającą wiele małych poprawnych wartości, powodując rekurencję proporcjonalną do liczby wartości, wyczerpując stos JavaScript i przerywając proces lub strumień. Problem naprawiono w wersji 6.1.0.
- CVE-2026-107299Średnie
msgpack5 przed wersją 6.1.0 traktuje zarezerwowany bajt 0xc1 jako niekompletne wejście zamiast nieprawidłowego. Gdy strumień zaczyna się od 0xc1, kolejne dane pozostają w buforze, czekając na bajty, które nigdy nie uczynią wartości prawidłową, co pozwala zdalnemu peerowi wyczerpać pamięć.
- CVE-2026-107298Średnie
msgpack5 przed wersją 6.1.0 nie ma limitu głębokości zagnieżdżenia dla tablic i map, co pozwala atakującemu dostarczającemu dane MessagePack na przesłanie głęboko zagnieżdżonych kontenerów, które wyczerpują stos JavaScript i przerywają działanie procesu, workera lub obsługi żądań.
- CVE-2026-107297Średnie
W msgpack5 przed wersją 6.1.0 dekoder strumieniowy ponownie przetwarza niekompletną tablicę lub mapę od początku za każdym razem, gdy nadejdzie kolejny fragment danych. Zdalny peer może podzielić jeden prawidłowy kontener MessagePack na wiele małych fragmentów, powodując wielokrotne dekodowanie już ukończonych elementów, co prowadzi do kwadratowego zużycia CPU i blokowania pętli zdarzeń.
- CVE-2026-107296Niskie
msgpack5 to implementacja msgpack v5 dla node.js i przeglądarek. W wersjach przed 6.1.0 dekodowanie ujemnej liczby całkowitej 64-bitowej ze znakiem modyfikuje odpowiednie bajty w buforze wejściowym dostarczonym przez wywołującego podczas obliczania wartości. Aplikacje, które przechowują lub ponownie wykorzystują zakodowane dane wejściowe do kontroli integralności, logowania lub późniejszego przetwarzania, mogą zaobserwować ciche uszkodzenie danych; liczby dodatnie i inne typy wartości MessagePack nie są objęte problemem. Problem naprawiono w wersji 6.1.0.
Oryginalny opis (angielski, źródło NVD)
msgpack5 is a msgpack v5 implementation for node.js and the browser. Prior to 6.1.0, the decoder reads the four-byte length of a map32 value before validating that the complete five-byte header is available. A truncated map32 header therefore causes a checked out-of-bounds buffer read and throws RangeError instead of IncompleteBufferError, which can unexpectedly terminate a request, stream, or worker in applications that wait for additional bytes after IncompleteBufferError. There is no adjacent-memory disclosure because the buffer implementation checks bounds. This issue is fixed in version 6.1.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

