HIGH🇬🇧 English

CVE-2026-18446

fast-uri: rozbieżność parsowania URI umożliwia ominięcie filtrów SSRF

CVSS 7.5v3.1pub. 2026-07-31

Biblioteka fast-uri (Node.js) parsuje URI z ukośnikami odwrotnymi inaczej niż natywny parser WHATWG URL wbudowany w Node.js. Rozbieżność ta pozwala atakującemu przemycić odwołanie do niezamierzonego hosta, omijając zabezpieczenia oparte na listach dozwolonych, filtry SSRF lub walidację przekierowań.

Pokaż oryginał (EN)

fast-uri before 4.1.2, 3.1.5, and 2.4.4 requires a literal double forward slash to recognize a URI authority, so a reference that uses a backslash based introducer in place of it (backslash backslash, forward slash backslash, or backslash forward slash) is parsed with no authority and folds into the path. Node's native WHATWG URL parser instead treats a backslash as interchangeable with a forward slash for special schemes, so the two parsers extract different hosts from the same input. Applications that use fast-uri to enforce host based policy such as allowlists, SSRF filtering, or redirect validation before passing the same URL into Node's URL or fetch consumers can be steered to an unintended host. Upgrade to fast-uri 4.1.2, 3.1.5, or 2.4.4.

🤖 Analiza AI
Jak działa

fast-uri wymaga dosłownie dwóch ukośników prostych (forward slash), aby rozpoznać sekcję authority (host) w URI. Gdy zamiast nich użyty zostanie ukośnik odwrotny (backslash) w różnych kombinacjach (backslash-backslash, forward slash-backslash lub backslash-forward slash), biblioteka nie wykrywa authority i traktuje tę część jako ścieżkę. Natywny parser WHATWG URL w Node.js akceptuje natomiast backslash jako odpowiednik forward slash dla tzw. special schemes (np. http, https), wyciągając z tego samego wejścia zupełnie inny host. Jeśli aplikacja używa fast-uri do sprawdzania hosta (allowlist, filtr SSRF, walidacja redirect), a następnie przekazuje ten sam URL do Node.js URL API lub fetch, faktyczne żądanie trafia do hosta niewidocznego dla filtra.

Skutki

Atakujący może ominąć mechanizmy kontroli dostępu oparte na hoście (allowlisty, filtry SSRF, walidację przekierowań) i skłonić aplikację do nawiązania połączenia z niezamierzonym, potencjalnie wewnętrznym lub złośliwym hostem, naruszając integralność polityki bezpieczeństwa.

Mitygacja

Należy zaktualizować fast-uri do wersji 4.1.2, 3.1.5 lub 2.4.4 — w zależności od używanej gałęzi. Jako dodatkowe zabezpieczenie warto wykonywać walidację hosta tym samym parserem, który finalnie realizuje żądanie (WHATWG URL), aby wyeliminować rozbieżności między parserami.

Kogo dotyczy

Biblioteka fast-uri w wersjach przed 4.1.2, przed 3.1.5 oraz przed 2.4.4 (gałęzie 4.x, 3.x i 2.x). Dotyczy aplikacji Node.js, które stosują fast-uri do egzekwowania polityki opartej na hoście przed przekazaniem URL do natywnych mechanizmów Node.js.

Uwagi

Podatność sklasyfikowana jako CWE-436 (Interpretation Conflict) — wynika z różnicy w interpretacji URI między fast-uri a natywnym parserem WHATWG URL w Node.js. Szczegóły dostępne w GitHub Security Advisory GHSA-7p8r-x3mc-p8w7.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
SSRF
CWE
Referencje