fast-uri — это анализатор URI для Node.js. Его собственный синтаксический анализатор для литералов IPv6 в скобках не проверяет полную грамматику IPv6, поэтому недопустимый конечный текст в органе управления может быть незаметно отброшен, а неверный хост, контролируемый злоумышленником, превращается в другой действительный пункт назначения IPv6. Например, литерал в скобках с недопустимыми конечными символами нормализуется до неопределенного адреса, который затем HTTP-клиент Node подключается к локальной службе через петлю, а другие некорректные литералы сворачиваются до адресов частного диапазона.
В анализируемом результате не установлено никаких ошибок, поэтому приложение, проверяющее поле ошибки, не может обнаружить перезапись. Приложение, которое нормализует ненадежные URL-адреса перед исходящими запросами, перенаправлениями, маршрутизацией прокси-сервера или применением политики адресов, может быть перенаправлено на локальную или частную цель IPv6, что дает подделку запроса на стороне сервера и примитив обхода политики адресов. Затронутые версии: от 2.3.1 до 2.4.5, но не включая, от 3.0.0 до 3.1.6, но не включая, и от 4.0.0 до 4.1.3, но не включая.
Проблема исправлена в версиях 2.4.5, 3.1.6 и 4.1.3, которые проверяют заключенные в скобки IP-литералы на соответствие полной грамматике и помечают некорректные литералы как авторитетные ошибки. Пользователям следует перейти на исправленную версию.
Показать оригинальное описание (EN)
fast-uri is a URI parser for Node.js. Its custom parser for bracketed IPv6 literals does not validate the complete IPv6 grammar, so invalid trailing text in an authority can be silently discarded and a malformed attacker-controlled host is turned into a different valid IPv6 destination. For example, a bracketed literal with invalid trailing characters is normalized to the unspecified address, which a Node HTTP client then connects to a local service over loopback, and other malformed literals collapse to private-range addresses. No error is set on the parsed result, so an application checking the error field cannot detect the rewrite. An application that normalizes untrusted URLs before outbound requests, redirects, proxy routing, or address-policy enforcement can be redirected to a local or private IPv6 target, giving a server-side request forgery and address-policy bypass primitive. The affected versions are 2.3.1 up to but not including 2.4.5, 3.0.0 up to but not including 3.1.6, and 4.0.0 up to but not including 4.1.3. The issue is fixed in 2.4.5, 3.1.6, and 4.1.3, which validate bracketed IP literals against the full grammar and mark malformed literals as authority errors. Users should upgrade to a patched version.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 3
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Openjsf Fast-Uri
cpe:2.3:a:openjsf:fast-uri:*:*:*:*:*:node.js:*:*
|
2.3.1
|
2.4.5
|
|
Openjsf Fast-Uri
cpe:2.3:a:openjsf:fast-uri:*:*:*:*:*:node.js:*:*
|
3.0.0
|
3.1.6
|
|
Openjsf Fast-Uri
cpe:2.3:a:openjsf:fast-uri:*:*:*:*:*:node.js:*:*
|
4.0.0
|
4.1.3
|