Biblioteka fast-uri (wersje 2.3.1–4.1.0) niepoprawnie obsługuje znak backslash (U+005C) w adresach URL, co powoduje rozbieżność między jej parserem a natywnym parserem WHATWG stosowanym przez Node.js. Atakujący może wykorzystać tę różnicę do ominięcia mechanizmów bezpieczeństwa opartych na weryfikacji hosta, takich jak filtry SSRF, listy dozwolonych i zablokowanych domen czy walidacja przekierowań.
▸ Pokaż oryginał (EN)
Impact: fast-uri versions from 2.3.1 through 4.1.0 (including the 3.x line up to 3.1.3 and the 2.x line up to 2.4.2) do not treat a literal backslash character (U+005C) as an authority delimiter. Node's native WHATWG URL parser, used by fetch, undici, and Node's http and https clients, normalizes the backslash to a forward slash for special schemes such as http, https, ws, wss, ftp, and file. As a result, the two parsers extract different hosts from the same input string. Applications that use fast-uri to enforce host-based policy such as allowlists, denylists, loopback or SSRF filtering, redirect validation, or outbound proxy routing before passing the same URL into Node's URL or fetch consumers can be steered to an unintended destination, including cloud metadata endpoints, loopback, or internal hosts. Patches: upgrade to fast-uri 4.1.1, 3.1.4, or 2.4.3. Workarounds: none.
Parser fast-uri nie traktuje literalnego znaku backslash jako ogranicznika sekcji authority (hosta) w adresie URL. Natywny parser WHATWG w Node.js — używany przez fetch, undici oraz wbudowanych klientów http/https — normalizuje backslash do forward slasha dla schematów specjalnych (http, https, ws, wss, ftp, file). W efekcie oba parsery wyciągają różne wartości hosta z identycznego ciągu wejściowego. Jeśli aplikacja używa fast-uri do walidacji polityki (np. allowlist, denylist, filtr SSRF) przed przekazaniem tego samego URL do konsumentów Node.js, żądanie może zostać skierowane do niezamierzonego celu — np. endpointu metadanych chmury, interfejsu loopback lub wewnętrznych hostów.
Atakujący bez uwierzytelnienia może nakłonić aplikację do nawiązania połączenia z niezamierzonym hostem (np. wewnętrznym serwisem, endpointem metadanych chmury lub interfejsem loopback), skutecznie omijając zabezpieczenia przed SSRF i inne mechanizmy kontroli dostępu oparte na weryfikacji hosta.
Należy zaktualizować bibliotekę fast-uri do wersji 4.1.1, 3.1.4 lub 2.4.3 (w zależności od używanej gałęzi). Producent nie przewiduje żadnych obejść (workarounds: none) — jedynym rozwiązaniem jest aktualizacja.
Biblioteka fast-uri w wersjach od 2.3.1 do 2.4.2 (linia 2.x), od 3.0.0 do 3.1.3 (linia 3.x) oraz od 4.0.0 do 4.1.0 (linia 4.x). Dotyczy aplikacji Node.js, które używają fast-uri do weryfikacji hosta lub filtrowania SSRF przed przekazaniem URL do natywnych klientów HTTP.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:NOpenjsf Fast Uri
APPOpenjsf2.3.1 – 2.4.3 (bez)3.0.0 – 3.1.4 (bez)4.0.0 – 4.1.1 (bez)
Powiązane podatności
Pominięcie polityki host-based w fast-uri przez brak normalizacji IDN
fast-uri normalize() decoded percent-encoded authority delimiters inside the host component and then re-emitte...
fast-uri decoded percent-encoded path separators and dot segments before applying dot-segment removal in its n...
WebdriverIO: command injection w orkiestracji testów prowadzący do RCE
nvm (Node Version Manager) through 0.40.4 executes arbitrary commands from version strings supplied by the con...