axios в развертывании Node.js с использованием адаптера HTTP может маршрутизировать запросы через прокси-сервер, контролируемый злоумышленником. axios ужесточает конфигурацию объединенного запроса, создавая объект с нулевым прототипом, но перехватчики запросов запускаются после слияния; общий шаблон неизменяемого перехватчика, такой как {...config} или Object.assign({}, config), преобразует усиленную конфигурацию обратно в обычный объект. Затем axios отправляет этот объект без его повторного усиления, а HTTP-адаптер Node считывает config.proxy через цепочку прототипов. Если злоумышленник может загрязнить Object.prototype.proxy, затронутые запросы могут быть перенаправлены через прокси-сервер, контролируемый злоумышленником.
Для HTTP-запросов в виде открытого текста прокси-сервер может наблюдать заголовки авторизации, базовую аутентификацию из config.auth, метод, абсолютный URL-адрес, хост и тело запроса, а также может возвращать собственный ответ. Это не влияет на влияние браузера или раскрытие заголовка/тела HTTPS при обычной проверке TLS. Затронутые версии: >=0.31.1 (исправлено в 0.33.0) и >=1.15.2 (исправлено в 1.18.0).
Показать оригинальное описание (EN)
axios in a Node.js deployment using the HTTP adapter can route requests through an attacker-controlled proxy. axios hardens merged request configuration by creating a null-prototype object, but request interceptors run after the merge; a common immutable interceptor pattern such as {...config} or Object.assign({}, config) converts the hardened config back into a regular object. axios then dispatches that object without re-hardening it, and the Node HTTP adapter reads config.proxy through the prototype chain. If an attacker can pollute Object.prototype.proxy, affected requests can be routed through an attacker-controlled proxy. For plaintext HTTP requests, the proxy can observe Authorization headers, Basic auth from config.auth, method, absolute URL, Host, and request body, and can return its own response. This does not establish browser impact or HTTPS header/body disclosure under normal TLS validation. Affected versions are >=0.31.1 (fixed in 0.33.0) and >=1.15.2 (fixed in 1.18.0).
Характеристики атаки
Последствия
Строка CVSS v4.0
Тип уязвимости (CWE)
Уязвимые продукты 2
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Axios Axios
cpe:2.3:a:axios:axios:*:*:*:*:*:node.js:*:*
|
0.31.1
|
0.33.0
|
|
Axios Axios
cpe:2.3:a:axios:axios:*:*:*:*:*:node.js:*:*
|
1.15.2
|
1.18.0
|