fast-uri сериализует компонент порта URI без его проверки. При пересоздании полномочий компоненты userinfo и хоста экранируются, но порт объединяется дословно, поэтому значение порта, которое не является последовательностью цифр, может вводить разделители полномочий, понижая предполагаемый хост до userinfo и указывая полномочия на хост, контролируемый злоумышленником. И fast-uri, и URL-адрес узла считывают результат обратно как хост злоумышленника без ошибок, поэтому повторная проверка встроенного URI не перехватывает его.
Это влияет на приложения, которые создают URI из частей и назначают ненадежные данные компоненту порта с помощью функций сериализации, нормализации или равенства в своих объектных формах. Проблема затрагивает версии fast-uri до 2.4.6, от 3.0.0 до 3.1.7 и от 4.0.0 до 4.1.4. Это исправлено в версиях 2.4.6, 3.1.7 и 4.1.4, где recomposeAuthority отклоняет любой порт, который не является последовательностью цифр согласно RFC 3986.
Показать оригинальное описание (EN)
fast-uri serializes the port component of a URI without validating it. When recomposing the authority, the userinfo and host components are escaped but the port is concatenated verbatim, so a port value that is not a sequence of digits can inject authority delimiters, demoting the intended host to userinfo and pointing the authority at an attacker-controlled host. Both fast-uri and Node's URL read the result back as the attacker's host with no error, so re-validating the built URI does not catch it. This affects applications that build URIs from parts and assign untrusted data to the port component through the serialize, normalize, or equal functions in their object forms. The issue affects fast-uri versions before 2.4.6, from 3.0.0 before 3.1.7, and from 4.0.0 before 4.1.4. It is fixed in 2.4.6, 3.1.7, and 4.1.4, where recomposeAuthority rejects any port that is not a digit sequence per RFC 3986.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 3
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Openjsf Fast-Uri
cpe:2.3:a:openjsf:fast-uri:*:*:*:*:*:node.js:*:*
|
— |
2.4.6
|
|
Openjsf Fast-Uri
cpe:2.3:a:openjsf:fast-uri:*:*:*:*:*:node.js:*:*
|
3.0.0
|
3.1.7
|
|
Openjsf Fast-Uri
cpe:2.3:a:openjsf:fast-uri:*:*:*:*:*:node.js:*:*
|
4.0.0
|
4.1.4
|