Biblioteka fast-uri w wersjach 2.3.1–3.1.2 oraz 4.0.0 nie przeprowadza prawidłowej kanonizacji nazw hostów Unicode (IDN) dla adresów URL z rodziny HTTP. Skutkuje to możliwością ominięcia mechanizmów bezpieczeństwa opartych na weryfikacji hosta, takich jak denylists, filtrowanie loopback czy walidacja przekierowań.
▸ Pokaż oryginał (EN)
fast-uri versions 2.3.1 through 3.1.2 and 4.0.0 fail to canonicalize Unicode (IDN) hostnames for HTTP-family URLs. The IDN conversion path calls a helper that does not exist on the global URL constructor, silently leaving the host in its original Unicode form while normalize() and equal() still return values that differ from a WHATWG-compatible URL parser. Applications that use fast-uri to enforce host-based policy (denylists, loopback filtering, redirect validation, outbound proxy routing) before passing the same URL to Node's URL or fetch can be bypassed when the two implementations resolve the same input to different hosts. Patches: upgrade to fast-uri 3.1.3 for the 3.x line or 4.0.1 for the 4.x line. Workarounds: enforce host policy using the same URL parser used for the actual request, or reject non-ASCII hosts before policy checks.
Podczas przetwarzania adresów URL zawierających hosty w formacie IDN (International Domain Names), fast-uri wywołuje funkcję pomocniczą, która nie istnieje w globalnym konstruktorze URL — w wyniku czego host pozostaje w oryginalnej formie Unicode zamiast zostać skonwertowany do postaci ASCII (punycode). Metody normalize() i equal() zwracają wartości niezgodne z parserem URL zgodnym ze standardem WHATWG. Jeśli aplikacja używa fast-uri do weryfikacji polityki hosta (np. sprawdzania denylisty lub filtrowania przekierowań), a następnie przekazuje ten sam URL do parsera Node.js lub fetch, obydwa parsery mogą rozwiązać ten sam URL do różnych hostów. Atakujący może w ten sposób skonstruować URL, który przejdzie kontrolę bezpieczeństwa w fast-uri, lecz zostanie zinterpretowany inaczej przez właściwy parser wykonujący żądanie.
Atakujący może ominąć polityki bezpieczeństwa oparte na weryfikacji hosta (denylists, filtrowanie loopback, walidacja przekierowań, routing przez proxy), co może prowadzić do nieautoryzowanego dostępu do zasobów wewnętrznych lub wykonania niezamierzonych żądań sieciowych.
Należy zaktualizować fast-uri do wersji 3.1.3 (dla gałęzi 3.x) lub 4.0.1 (dla gałęzi 4.x). Jako obejście można egzekwować politykę hosta przy użyciu tego samego parsera URL, który jest używany do realizacji właściwego żądania, lub odrzucać hosty zawierające znaki spoza zakresu ASCII przed wykonaniem sprawdzeń polityki.
Biblioteka fast-uri (Openjsf Fast-Uri) w wersjach 2.3.1 do 3.1.2 włącznie oraz wersja 4.0.0
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:NOpenjsf Fast Uri
APPOpenjsf2.3.1 – 3.1.3 (bez)4.0.0 – 4.0.1 (bez)
Powiązane podatności
Rozbieżność parserów URL w fast-uri umożliwia ominięcie filtrów SSRF
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...