Перехватчик кэша undici неправильно обрабатывает некорректные частные директивы Cache-Control. В версиях undici с 7.0.0 до 7.29.0 и с 8.0.0 до 8.9.0 ответ, содержащий вырожденную квалифицированную частную директиву, например, для частного набора с пустым значением, может быть сохранен в общем кеше по умолчанию и позже передан другому вызывающему абоненту с тем же ключом кеша, раскрывая частные тела ответа и заголовки, включая Set-Cookie. Кроме того, заголовок Cache-Control, который объединяет неполную частную директиву с квалифицированной, вызывает неперехваченную ошибку TypeError в анализаторе управления кешем, который отклоняет запрос и, в зависимости от обработки ошибок потребителя, может завершить процесс.
Обе проблемы затрагивают приложения, использующие перехватчик кэша в общем режиме, включая конфигурацию по умолчанию. Проблемы исправлены в undici 7.29.0 и 8.9.0.
Показать оригинальное описание (EN)
undici's cache interceptor mishandles malformed Cache-Control private directives. In undici 7.0.0 up to before 7.29.0 and 8.0.0 up to before 8.9.0, a response carrying a degenerate qualified private directive, such as private set to an empty value, can be stored in the default shared cache and later served to a different caller with the same cache key, disclosing private response bodies and headers including Set-Cookie. Separately, a Cache-Control header that combines an unqualified private directive with a qualified one triggers an uncaught TypeError in the cache-control parser, which rejects the request and, depending on the consumer's error handling, can terminate the process. Both issues affect applications using the cache interceptor in shared mode, including the default configuration. The issues are fixed in undici 7.29.0 and 8.9.0.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 2
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
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
|