Функция setCookie undici не полностью очищает атрибуты файлов cookie. В версиях undici до 6.28.0, с 7.0.0 до 7.29.0 и с 8.0.0 до 8.9.0 значение домена не проверяется на наличие точек с запятой, а записи в неанализируемом массиве не очищаются, поэтому входные данные под влиянием злоумышленника могут внедрить дополнительные атрибуты cookie. Например, к значению домена, содержащему точку с запятой, можно добавлять атрибуты, такие как SameSite, а неанализируемая запись может вводить атрибуты, такие как HttpOnly, без их установки вызывающей стороной.
Приложения, которые передают управляемые пользователем входные данные в эти поля, такие как мультитенантные или обратные прокси-серверы, которые ограничивают файлы cookie сеанса доменом, предоставленным арендатором, могут обойти защиту SameSite CSRF или атрибуты Secure, HttpOnly и SameSite принудительно, удалены или переопределены. Проблема исправлена в версиях undici 6.28.0, 7.29.0 и 8.9.0.
Показать оригинальное описание (EN)
undici's setCookie function does not fully sanitize cookie attributes. In undici before 6.28.0, from 7.0.0 up to before 7.29.0, and from 8.0.0 up to before 8.9.0, a domain value is not checked for semicolons and entries in the unparsed array are not sanitized, so attacker-influenced input can inject additional cookie attributes. For example, a domain value containing a semicolon can append attributes such as SameSite, and an unparsed entry can inject attributes such as HttpOnly, without the caller setting them. Applications that pass user-controlled input to these fields, such as multi-tenant or reverse-proxy servers that scope session cookies to a tenant-supplied domain, can have SameSite CSRF protections bypassed, or the Secure, HttpOnly, and SameSite attributes forced, stripped, or overridden. The issue is fixed in undici 6.28.0, 7.29.0, and 8.9.0.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 3
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Nodejs Undici
cpe:2.3:a:nodejs:undici:*:*:*:*:*:node.js:*:*
|
— |
6.28.0
|
|
Nodejs Undici
cpe:2.3:a:nodejs:undici:*:*:*:*:*:node.js:*:*
|
7.0.0
|
7.29.0
|
|
Nodejs Undici
cpe:2.3:a:nodejs:undici:*:*:*:*:*:node.js:*:*
|
8.0.0
|
8.9.0
|