CVE-2026-54270
ŚrednieCVSS 5.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 21 - wyżej niż 21% wszystkich znanych CVE
Streszczenie
Wersje protobufjs od 8.2.0 do 8.4.2 nie miały opcji do odrzucania nieznanych pól podczas dekodowania, co mogło prowadzić do nadmiernego zużycia pamięci przez dekodowane wiadomości. W wersji 8.5.0 dodano opcje umożliwiające wyłączenie zatrzymywania nieznanych pól, a w wersji 8.6.2 domyślnie odrzucane są nieznane pola.
Ocena ryzyka
Organizacje mogą doświadczać problemów z wydajnością i nadmiernym zużyciem pamięci, gdy aplikacje dekodują nieznane dane protobuf. Może to prowadzić do awarii aplikacji lub degradacji usług.
Rekomendacja
Zaleca się aktualizację do wersji protobufjs 8.6.2 lub nowszej, aby skorzystać z domyślnego odrzucania nieznanych pól. Dodatkowo, należy skonfigurować aplikacje do korzystania z opcji dekodowania, które wyłączają zatrzymywanie nieznanych pól.
Inne podatności w protobufjs
Zobacz wszystkie- CVE-2026-41242Krytyczne
Podatność w bibliotece protobufjs umożliwia wstrzyknięcie dowolnego kodu JavaScript przez pola 'type' w definicjach protobuf. Kod wykonuje się podczas dekodowania obiektów. Problem został załatany w wersjach 8.0.1 i 7.5.5.
- CVE-2026-59877Średnie
Podatność w bibliotece protobufjs umożliwia zapętlenie nieskończone podczas parsowania specjalnie spreparowanych plików .proto. Brak sprawdzenia końca wejścia przy przetwarzaniu opcji powoduje, że funkcje parse, Root.load lub Root.loadSync mogą działać w nieskończoność.
- CVE-2026-59876Średnie
Podatność w bibliotece protobufjs (wersje 8.2.0 do 8.6.5) umożliwia atak typu prototype pollution poprzez parsowanie map w formacie Text Format. Atakujący może wstrzyknąć klucz mapy o nazwie __proto__, co zmienia prototyp obiektu zamiast tworzyć wpis w mapie.
- CVE-2026-54269Średnie
W wersjach przed 8.6.0 i 7.6.3, protobufjs akceptował pewne nazwy pochodzące ze schematu, które mogły kolidować z właściwościami używanymi przez pomocników runtime protobufjs. To mogło prowadzić do wyjątków deterministycznych lub rekurencyjnych wywołań w różnych operacjach związanych z dekodowaniem i serializacją.
- CVE-2026-44293Wysokie
protobufjs przed wersjami 7.5.6 i 8.0.2 generuje kod JavaScript dla funkcji toObject, który może zawierać niebezpieczne wyrażenie pochodzące z domyślnej wartości pola bytes kontrolowanej przez schemat. Specjalnie spreparowany deskryptor może spowodować wykonanie kodu atakującego.
- CVE-2026-44289Wysokie
Protobufjs przed wersjami 7.5.6 i 8.0.2 nie ogranicza głębokości rekurencji podczas dekodowania zagnieżdżonych danych protobuf. Specjalnie spreparowany binarny ładunek protobuf może wyczerpać stos wywołań JavaScript, powodując awarię.
Oryginalny opis (angielski, źródło NVD)
protobufjs compiles protobuf definitions into JavaScript (JS) functions. From 8.2.0 to 8.4.2, protobufjs preserved unknown wire elements in message.$unknowns and did not provide a decode-time option to discard unknown fields before retaining them. A crafted protobuf payload containing many unknown fields could therefore cause a decoded message to retain substantially more memory than the input size would suggest, even when unknown-field round-tripping is not needed. protobufjs 8.5.0 added the relevant decode-time options, allowing applications that decode untrusted protobuf data to disable unknown-field retention during decode. protobufjs 8.6.2 flips the default so unknown fields are discarded unless explicitly opted into.

