CVE-2026-114141
WysokieCVSS 8.7Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 21 - wyżej niż 21% wszystkich znanych CVE
Streszczenie
toml-node to parser TOML dla Node.js i przeglądarki. Przed wersją 5.0.1 funkcja addTableArray() w lib/compiler.js ponownie skanuje kompletne zestawy księgowe assignedPaths i valueAssignments dla każdego nagłówka tablicy tabel. Różne ścieżki [[name]] nie są przycinane, więc dokument z wieloma takimi nagłówkami powoduje kwadratową pracę synchroniczną i może zablokować pętlę zdarzeń Node.js, odmawiając usługi innym operacjom w procesie.
Ocena ryzyka
Atakujący może dostarczyć złośliwy dokument TOML z wieloma nagłówkami tablic tabel, powodując odmowę usługi (DoS) poprzez zablokowanie pętli zdarzeń Node.js.
Rekomendacja
Zaktualizuj toml-node do wersji 5.0.1, która naprawia tę podatność.
Inne podatności w toml-node
Zobacz wszystkie- CVE-2026-114144Wysokie
toml-node to parser TOML dla Node.js i przeglądarek. W wersjach przed 5.0.1 funkcja toml.parse() przekazuje nieograniczone sekwencje cyfr szesnastkowych, ósemkowych, binarnych i dziesiętnych do BigInt() przed sprawdzeniem zakresu 64-bitowego, co pozwala na atak typu denial of service poprzez synchroniczne zablokowanie pętli zdarzeń Node.js.
- CVE-2026-114143Wysokie
toml-node to parser TOML dla Node.js i przeglądarki. Przed wersją 5.0.1 funkcja toml.parse() wielokrotnie dzieli i łączy każdy prefiks ścieżki w lib/compiler.js podczas przetwarzania długich kluczy kropkowych, nagłówków tabel, nagłówków tablic tabel i kluczy tabel inline w assign(), deepRef() i setNestedKey(). Powstała praca kwadratowa może zablokować pętlę zdarzeń Node.js na kilka sekund, a wystarczająco długie ścieżki mogą zakończyć proces z powodu wyczerpania pamięci.
- CVE-2026-114142Wysokie
toml-node to parser TOML dla Node.js i przeglądarki. Przed wersją 5.0.1 funkcja toml.parse() może zapisywać kontrolowane przez atakującego właściwości do Object.prototype, ponieważ quoteDottedString() w lib/compiler.js tworzy ten sam ciąg księgowania dla różnych ścieżek kluczy w cudzysłowach, co pozwala addTableArray() wyczyścić zabezpieczenie innego klucza. Ścieżka assign() schodzi następnie przez nieposiadaną wartość Date bez zastosowania sprawdzenia posiadanego kontenera i może dotrzeć do łańcucha prototypów. Obiekty utworzone w innym miejscu procesu mogą odziedziczyć wstrzykniętą właściwość. Podatność naprawiono w wersji 5.0.1.
- CVE-2026-77465Wysokie
toml-node to parser TOML dla Node.js i przeglądarki. Przed wersją 4.2.0 funkcja toml.parse() używa wygenerowanego przez Peggy 5.1.0 rekurencyjnego parsera w lib/parser.js, którego funkcje peg$parsevalue, peg$parsearray i peg$parseinline_table_entry rekurencyjnie przetwarzają zagnieżdżone tablice i tabele inline bez limitu głębokości. Zdalny nieuwierzytelniony atakujący, którego aplikacja parsuje kontrolowany dokument TOML zawierający kilka tysięcy zagnieżdżonych tablic lub tabel inline, może wyczerpać stos wywołań Node.js, wywołać nieoczekiwany błąd RangeError zamiast SyntaxError parsera i przerwać działanie niechronionego procesu roboczego lub procesu. Odpowiedni plik gramatyki to src/toml.pegjs, gdzie wygenerowany parser musi być ograniczony. Problem naprawiono w wersji 4.2.0.
- CVE-2026-63376Wysokie
toml-node to parser TOML dla Node.js i przeglądarki. Przed wersją 4.1.2 funkcja toml.parse() w lib/compiler.js może zostać oszukana przez ścieżkę tabeli taką jak a.b.y.__proto__.__proto__, umożliwiając przejście od wartości skalarnej do Number.prototype i Object.prototype. Wartość śledzenia currentPath używa zarówno tablic, jak i ciągów znaków, więc valueAssignments rejestruje ścieżkę połączoną przecinkami, taką jak a,b.y, podczas gdy deepRef sprawdza ścieżkę połączoną kropkami a.b.y, co pozwala na ominięcie zabezpieczenia przed duplikatami kluczy i zapisanie kluczy kontrolowanych przez atakującego do Object.prototype. Ścieżka czyszcząca prefiks tablicy w addTableArray może również wymazać stan zabezpieczeń przed tą samą trawersacją __proto__. Wstrzyknięte właściwości stają się widoczne w całym procesie Node.js i mogą powodować odmowę usługi, obejście logiki lub autoryzacji, lub wykonanie kodu, gdy aplikacja zawiera odpowiedni gadżet. Problem naprawiono w wersji 4.1.2.
Oryginalny opis (angielski, źródło NVD)
toml-node is a TOML parser for Node.js and the browser. Prior to 5.0.1, the toml.parse() compiler's addTableArray() function in lib/compiler.js rescans the complete assignedPaths and valueAssignments bookkeeping sets for every array-of-tables header. Distinct [[name]] paths are not pruned, so a document with many such headers causes quadratic synchronous work and can block the Node.js event loop, denying service to other operations in the process. This issue is fixed in version 5.0.1.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

