Katalog CVE

CVE-2026-107353

ŚrednieCVSS 6.5
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.28%

Percentyl 19 - wyżej niż 19% wszystkich znanych CVE

Streszczenie

Biblioteka traverse (npm) w wersjach 0.3.6-0.3.9, 0.4.0-0.4.6, 0.5.0-0.5.2 i 0.6.0-0.6.11 pozwala na zanieczyszczenie prototypu (prototype pollution) przez funkcję set(). Gdy ścieżka przekazana do set() przechodzi przez wartość prymitywną, kolejny segment ścieżki jest rozwiązywany na wbudowanym prototypie tej wartości, co pozwala atakującemu dodać lub nadpisać właściwości String.prototype, Number.prototype lub Boolean.prototype przy użyciu zwykłych danych JSON. Problem naprawiono w wersjach 0.3.10, 0.4.7, 0.5.3 i 0.6.12.

Ocena ryzyka

Aplikacja przekazująca niezaufaną ścieżkę do set() może zostać wykorzystana do modyfikacji prototypów wbudowanych obiektów JavaScript, co może prowadzić do obejścia zabezpieczeń, wykonania dowolnego kodu lub awarii aplikacji. Ryzyko jest szczególnie wysokie w aplikacjach przetwarzających dane wejściowe od użytkownika.

Rekomendacja

Zaktualizuj bibliotekę traverse do wersji 0.3.10, 0.4.7, 0.5.3 lub 0.6.12 (w zależności od używanej gałęzi). Unikaj przekazywania niezaufanych ścieżek do funkcji set().

Powiązane podatności

Oryginalny opis (angielski, źródło NVD)

traverse (npm) versions 0.3.6 through 0.3.9, 0.4.0 through 0.4.6, 0.5.0 through 0.5.2, and 0.6.0 through 0.6.11 allow prototype pollution through set(). When the path passed to set() crosses a primitive value, the next path segment is resolved on that primitive's built-in prototype, so an application that passes an untrusted path to set() lets an attacker add or overwrite properties of String.prototype, Number.prototype, or Boolean.prototype using plain JSON data, for example traverse({ name: 'bob' }).set(['name', '__proto__', 'polluted'], 'yes'). Object.prototype was reachable only with a non-data path segment, such as an object whose toString returns a different value on each call, or through a Proxy that accepts an assignment without storing it. This is fixed in 0.3.10, 0.4.7, 0.5.3, and 0.6.12.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS