CVE-2026-116582
ŚrednieCVSS 4.7Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 8 - wyżej niż 8% wszystkich znanych CVE
Streszczenie
W bibliotece Seroval przed wersją 1.0.0 oraz od 1.5.5 do 1.6.10 interfejsy generujące JavaScript serializują źródło RegExp zawierające znak mniejszości bez wymaganego escapowania dla elementu script HTML. Gdy aplikacja buduje wyrażenie regularne z niezaufanych danych i osadza wynik w elemencie script, spreparowane źródło może zamknąć element i wykonać skrypt.
Ocena ryzyka
Atakujący może doprowadzić do wykonania złośliwego skryptu w przeglądarce innego użytkownika. Może to prowadzić do kradzieży sesji lub danych.
Rekomendacja
Zaktualizuj Seroval do wersji 1.6.10 lub nowszej. Unikaj osadzania serializowanych RegExp z niezaufanych danych w elementach script HTML.
Inne podatności w Seroval
Zobacz wszystkie- CVE-2026-23956Wysokie
Seroval umożliwia konwersję wartości JS na ciągi, w tym złożone struktury, które wykraczają poza możliwości JSON.stringify. W wersjach od 0.2.0 do 1.4.0, nadpisanie serializacji RegExp z bardzo dużymi wzorcami może prowadzić do wyczerpania pamięci podczas deserializacji.
- CVE-2026-104846Krytyczne
Seroval od wersji 0.12.0 do 1.6.2 ma podatność w deserializacji fromJSON węzła kontrolnego spełnionej obietnicy (Promise), która może przekazać wyprodukowany przez plugin thenable z wywoływalną funkcją do natywnego resolvera Promise. Asymilacja thenable w ECMAScript wywołuje tę funkcję nieoczekiwanie, co pozwala sterowanemu przez atakującego JSON na wywołanie kodu w aplikacjach używających Seroval z pluginami. Ta ścieżka omija remediację typu Promise resolver w wersji 1.5.3 dla CVE-2026-59940, ponieważ nieoczekiwane wywołanie następuje przez natywne rozliczenie Promise po deserializacji odwołanej wartości. Problem został naprawiony w wersji 1.6.2.
- CVE-2026-59940Krytyczne
Seroval przed wersją 1.5.3 umożliwia atakującemu kontrolowaną deserializację JSON, która może prowadzić do niepożądanych efektów ubocznych, a w połączeniu z frameworkami rejestrującymi wywoływalne wrappery – do niezamierzonego wykonania kodu po stronie serwera lub zdalnego wykonania kodu.
- CVE-2026-116584Wysokie
W Seroval od wersji 1.4.1 do 1.6.8 funkcje fromJSON i fromCrossJSON nie wymagają, aby lista elementów węzła tablicy była rzeczywistą tablicą. Mały spreparowany ładunek może podać kontrolowaną przez atakującego długość, która niezależnie od rozmiaru ładunku określa alokację pamięci i liczbę iteracji dekodera, umożliwiając nieuwierzytelnionemu żądaniu wyczerpanie procesu lub zablokowanie jego wątku. Problem naprawiono w wersji 1.6.8.
- CVE-2026-116583Średnie
W bibliotece Seroval od wersji 1.6.0 do 1.6.11 interfejsy generujące JavaScript pobierają nazwę konstruktora tablicy typowanej z właściwości, którą można zastąpić własną właściwością constructor. Gdy aplikacja kopiuje niezaufane właściwości na tablicę typowaną i przekazuje ją do serializacji, kontrolowana przez atakującego nazwa jest zapisywana jako wykonywalny JavaScript.
- CVE-2026-116581Wysokie
Biblioteka Seroval przed wersją 1.6.8 nie waliduje indeksu 'done' węzła sekwencji podczas deserializacji (fromJSON i fromCrossJSON). Spreparowany indeks może utworzyć iterator, który nigdy się nie kończy, co przy przetwarzaniu niezaufanych danych prowadzi do zablokowania pętli zdarzeń, wyczerpania pamięci lub niedostępności usługi.
- CVE-2026-116580Wysokie
W Seroval przed wersją 1.6.8 funkcja fromJSON odbudowuje AsyncIteratorFactoryInstance, wywołując source.on(listener) bez sprawdzenia, czy source jest prawdziwym wewnętrznym strumieniem. Przy niezaufanych danych wejściowych i wtyczce aplikacji zwracającej wartość wywoływalną lub obiekt z metodą 'on', spreparowany węzeł może ponownie użyć identyfikatora i wymusić wywołanie wartości utworzonej przez wtyczkę.
- CVE-2026-104845Wysokie
Seroval przed wersją 1.6.3 ma podatność w deserializacji TypedArray, która pozwala atakującemu na podanie małego obiektu JSON z dużą wartością length, powodując nadmierną alokację pamięci i wyczerpanie zasobów CPU lub pamięci.
Oryginalny opis (angielski, źródło NVD)
Seroval facilitates JavaScript value stringification, including complex structures beyond JSON.stringify capabilities. Prior to 1.0.0 and from 1.5.5 until 1.6.10, the JavaScript-output APIs serialize a RegExp source containing a less-than character without the escaping needed for an HTML script element. An application is affected when it builds regular expression syntax from untrusted input, serializes that RegExp through serialize, serializeAsync, crossSerialize, crossSerializeAsync, crossSerializeStream, Serializer, or compileJSON, and embeds the result in an HTML script element. The crafted source can terminate the element and execute script in the page received by another user. This issue is fixed in version 1.6.10.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

