Katalog CVE

CVE-2026-17495

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

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.36%

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

Streszczenie

moment to biblioteka JavaScript do parsowania, walidacji, manipulacji i formatowania dat. W wersjach od 2.29.2 do 2.30.1 specjalnie spreparowany obiekt niebędący łańcuchem znaków przekazany do moment.locale() może obejść zabezpieczenie przed path traversal w nazwie locale. Zabezpieczenie zakłada, że dane wejściowe są łańcuchem znaków, więc obiekt, którego metoda match() spełnia warunek, a toString() zwraca ścieżkę traversal, dociera do wewnętrznego wywołania require() z segmentami ścieżki kontrolowanymi przez atakującego. Jest to niekompletna poprawka dla CVE-2022-24785 i dotyczy głównie użytkowników npm (po stronie serwera), którzy przekazują dane wejściowe od użytkownika bezpośrednio do moment.locale(). Problem naprawiono w wersji 2.31.0.

Ocena ryzyka

Atakujący może wykorzystać podatność do path traversal, potencjalnie prowadząc do wykonania kodu lub ujawnienia plików. Dotyczy to głównie aplikacji serwerowych używających moment.locale() z danymi od użytkownika.

Rekomendacja

Zaktualizuj moment do wersji 2.31.0 lub nowszej. Jako obejście, waliduj, czy dane wejściowe od użytkownika są łańcuchem znaków przed przekazaniem do moment.locale().

Powiązane podatności

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

moment is a JavaScript date library for parsing, validating, manipulating, and formatting dates. In versions 2.29.2 through 2.30.1, a specially crafted non-string object passed to moment.locale() can bypass the locale-name path-traversal guard. The guard assumes the input is a string, so an object whose match() method satisfies the check while its toString() returns a traversal path reaches an internal require() call with attacker-controlled path segments. This is an incomplete fix for CVE-2022-24785 and primarily affects npm (server-side) users that pass user-provided input directly to moment.locale(). The issue is fixed in moment 2.31.0, and users should upgrade to 2.31.0 or later. As a workaround, validate that any user-supplied input is a string before passing it to moment.locale().

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