HIGH🇬🇧 English

CVE-2026-67320

axios (Node.js): prototype pollution umożliwia przekierowanie żądań przez proxy atakującego

CVSS 8.3v4.0pub. 2026-08-01upd. 2026-08-03

Podatność w bibliotece axios (Node.js) pozwala atakującemu na zanieczyszczenie prototypu Object.prototype.proxy, co skutkuje przekierowaniem żądań HTTP przez kontrolowane przez niego proxy. Dla niezaszyfrowanych żądań HTTP atakujący może przechwycić nagłówki autoryzacyjne, dane uwierzytelniające oraz treść żądań.

Pokaż oryginał (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).

🤖 Analiza AI
Jak działa

axios zabezpiecza scalony obiekt konfiguracji żądania, tworząc obiekt bez prototypu (null-prototype). Jednak interceptory żądań uruchamiają się po tym scaleniu — popularne wzorce immutable interceptorów, takie jak {...config} lub Object.assign({}, config), konwertują zahartowany obiekt z powrotem na zwykły obiekt posiadający prototyp. axios przekazuje tak przekształcony obiekt do adaptera HTTP bez ponownego zahartowania, a adapter odczytuje właściwość config.proxy przez łańcuch prototypów. Jeśli atakujący zdoła wcześniej zanieczyścić Object.prototype.proxy (np. poprzez podatność na prototype pollution w aplikacji), żądania HTTP zostaną przekierowane do kontrolowanego przez niego proxy.

Skutki

Atakujący może przechwycić niezaszyfrowane żądania HTTP, w tym nagłówki Authorization, dane Basic auth z config.auth, metodę, pełny URL, nagłówek Host oraz treść żądania, a także podmienić odpowiedź serwera. Podatność nie dotyczy żądań HTTPS przy standardowej walidacji TLS ani środowisk przeglądarkowych.

Mitygacja

Należy zaktualizować axios do wersji 0.33.0 (dla gałęzi 0.x) lub 1.18.0 (dla gałęzi 1.x). Dodatkowo zaleca się audyt interceptorów żądań pod kątem wzorców kopiowania obiektów konfiguracji oraz eliminację potencjalnych wektorów prototype pollution w aplikacji.

Kogo dotyczy

axios w środowisku Node.js, wersje >=0.31.1 (naprawione w 0.33.0) oraz >=1.15.2 (naprawione w 1.18.0), przy użyciu adaptera HTTP i z obecnością interceptorów konfiguracji opartych na spread/Object.assign

Uwagi

Podatność wymaga łańcucha: (1) atakujący musi mieć możliwość zanieczyszczenia Object.prototype.proxy w procesie Node.js (np. przez oddzielną podatność na prototype pollution) oraz (2) aplikacja musi używać interceptorów konfiguracji ze wzorcem spread/Object.assign. Nie ma wpływu na żądania HTTPS przy standardowej walidacji TLS ani na środowiska przeglądarkowe.

CVSS Vector
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
CWE
Referencje