CVE-2026-17495
ŚrednieCVSS 5.9Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 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
- CVE-2026-83542Krytyczne
W Apache OFBiz 24.09 przed 24.09.08 wykryto podatność Code Injection. Zdalny nieuwierzytelniony atakujący może wykonać dowolny kod na serwerze poprzez przygotowanie złośliwego XML widgetu w uploadzie multipart i nadpisanie mainDecoratorLocation, co prowadzi do oceny niesandboxowanego wyrażenia Groovy.
- CVE-2026-117691Krytyczne
W implementacji wiązania SAML HTTP-Redirect w Keycloak występuje luka polegająca na tym, że serwer przetwarza nazwy parametrów zakodowane procentowo (np. %53AMLResponse), podczas gdy logika weryfikacji podpisu sprawdza tylko literalne nazwy parametrów. Atakujący może wykorzystać tę rozbieżność, dostarczając spreparowaną, niepodpisaną wiadomość SAML, którą serwer przetwarza zamiast legalnie podpisanej, co prowadzi do pełnego przejęcia konta użytkowników sfederowanych.
- CVE-2026-96677Krytyczne
Podatność Cross-site Scripting (XSS) w Apache Juneau. Serializacja dokumentów HTML nie koduje podstawień zmiennych w elementach szablonu strony (nagłówek, nawigacja, stopka itp.), więc aplikacje, które umieszczają tam dane z żądania, odzwierciedlają je bez kodowania.
- CVE-2026-73117Krytyczne
Podatność HTTP Response Splitting (wstrzykiwanie CRLF w nagłówkach HTTP) w Apache Juneau. Serwer REST przekazywał wartości nagłówków odpowiedzi i cele przekierowań do kontenera serwletów bez walidacji, co przy danych z żądania mogło pozwolić na wstrzyknięcie nagłówków lub przekierowanie na dowolną witrynę.
- CVE-2026-73116Krytyczne
Podatność niewystarczającej ochrony poświadczeń w Apache Juneau. Klient RestClient podążał za przekierowaniami HTTP, zachowując nagłówki poświadczeń z pierwotnego żądania, więc serwer przekierowujący na inny host, port lub z HTTPS na HTTP mógł otrzymać nagłówki Authorization, Cookie, Proxy-Authorization i X-API-Key.
- CVE-2026-73101Krytyczne
Podatność ujawniania informacji wrażliwych w komunikatach błędów w Apache Juneau. Serwer REST wysyła klientom klasę i treść wewnętrznego wyjątku w nagłówku odpowiedzi "Thrown" przy każdym błędzie oraz może umieszczać wewnętrzne komunikaty wyjątków w treści błędu, nawet przy wyłączonym renderowaniu stosu.
- CVE-2026-73100Krytyczne
Podatność umieszczania informacji wrażliwych w plikach logów w Apache Juneau. Domyślny logger wywołań serwera REST zapisuje nagłówki żądań dla żądań kończących się błędem serwera bez redakcji, więc nagłówki Authorization, Cookie, Proxy-Authorization i X-API-Key trafiają jawnym tekstem do logów aplikacji.
- CVE-2026-73099Krytyczne
Podatność Cross-Site Request Forgery (CSRF) w Apache Juneau. Serwer REST akceptuje parametr zapytania "content", który zastępuje treść żądania i jest domyślnie włączony dla każdej metody HTTP, w tym GET, więc link międzywitrynowy może dostarczyć wybraną przez atakującego treść żądania bez preflight CORS.
- CVE-2026-73098Krytyczne
Podatność nieprawidłowej kontroli dynamicznie ładowanego kodu w Apache Juneau. Przy parsowaniu wartości do właściwości typu java.lang.Class domyślna zamiana klas ładowała wskazaną klasę z włączoną inicjalizacją, więc dane wejściowe wskazujące klasę z classpath aplikacji uruchamiały jej statyczny inicjalizator.
- CVE-2026-121489Krytyczne
Podatność Path Traversal w Apache Juneau. Zasób mikroserwisu DirectoryResource nie utrzymuje ścieżek żądań wewnątrz skonfigurowanego katalogu głównego; gdy aplikacja włączy ustawienia view, upload lub delete (domyślnie wyłączone), klient może czytać, zapisywać lub usuwać pliki poza katalogiem głównym.
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

