CVE-2026-67316
WysokieCVSS 7.4Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 20 - wyżej niż 20% wszystkich znanych CVE
Streszczenie
Axios jest podatny na gadżety zanieczyszczenia prototypu po stronie odczytu, które mogą zmienić konstrukcję żądania, gdy Object.prototype został już zanieczyszczony przez oddzielną podatność lub zależność. W aliasach metod bez ciała (axios.get(), axios.delete(), axios.head(), axios.options()), dziedziczone dane są odczytywane przez (config || {}).data przed normalizacją konfiguracji, co powoduje wysłanie kontrolowanego przez atakującego ciała w żądaniach, które go nie ustawiły. Dodatkowe ścieżki niskiego poziomu, osiągalne tylko przy bezpośrednim wywoływaniu eksportowanych adapterów/pomocników (np. lib/adapters/http.js, unsafe/helpers/resolveConfig.js) z czystymi konfiguracjami i bez własnego proxy lub paramsSerializer, mogą dziedziczyć zanieczyszczone wartości proxy (kierowanie żądań przez proxy kontrolowane przez atakującego) lub wartości paramsSerializer (kontrolowana przez atakującego serializacja URL). Te gadżety niskiego poziomu nie reprodukują się przez normalne wywołania axios wysokiego poziomu w wersji 1.15.2+. Problem jest naprawiony w axios 1.18.0 i 0.33.0.
Ocena ryzyka
Ryzyko polega na możliwości wysłania nieoczekiwanego ciała żądania lub przekierowania żądań przez kontrolowane przez atakującego proxy, co może prowadzić do wycieku danych lub manipulacji żądaniami, ale tylko w przypadku wcześniejszego zanieczyszczenia prototypu.
Rekomendacja
Zaleca się aktualizację biblioteki axios do wersji 1.18.0 lub 0.33.0 oraz zabezpieczenie aplikacji przed zanieczyszczeniem prototypu.
Inne podatności w axios
Zobacz wszystkie- CVE-2026-101899Średnie
Klient HTTP Axios w wersjach od 1.15.0 do 1.20.0 błędnie interpretuje zapis CIDR w zmiennej NO_PROXY jako tekstowy sufiks hosta zamiast zakresu sieci. Żądanie do adresu objętego regułą CIDR w NO_PROXY nie jest dopasowane i zostaje wysłane przez skonfigurowane proxy. Dla HTTP proxy może obserwować i modyfikować URL, nagłówki i treść, a dla HTTPS metadane połączenia i żądania CONNECT.
- GHSA-pmv8-rq9r-6j72Średnie
Axios w wersjach od 0.28.0 zawiera niekontrolowaną rekurencję w formDataToJSON, która jest udostępniana jako axios.formToJSON() i używana wewnętrznie, gdy axios serializuje FormData z Content-Type: application/json. Jeśli aplikacja przekaże kontrolowane przez atakującego nazwy pól FormData, może to prowadzić do wyczerpania stosu.
- GHSA-7q8q-rj6j-mhjqŚrednie
Axios może konsumować dziedziczone właściwości z zagnieżdżonych obiektów opcji żądania, gdy proces JavaScript ma już zanieczyszczony Object.prototype. Główna połączona konfiguracja jest chroniona prototypem null, ale zagnieżdżone zwykłe obiekty, takie jak auth i paramsSerializer, są klonowane do obiektów z prototypem.
- CVE-2025-27152Wysokie
Podatność w bibliotece axios pozwala na wysyłanie żądań do absolutnych URL-i zamiast względnych, co może prowadzić do ataków SSRF i wycieku poświadczeń. Nawet przy ustawionym baseURL, axios ignoruje to i wysyła żądanie do podanego absolutnego adresu URL.
- GHSA-mmx7-hfxf-jppxŚrednie
Axios jest podatny na gadżety zanieczyszczenia prototypu po stronie odczytu, gdy Object.prototype został już zanieczyszczony przez inną podatność lub zależność. Najbardziej dostępny problem dotyczy aliasów metod bez ciała: axios.get(), axios.delete(), axios.head() i axios.options().
- CVE-2023-45857Średnie
W Axios 1.5.1 wykryto problem, który nieumyślnie ujawnia poufny token XSRF-TOKEN przechowywany w ciasteczkach. Token ten jest dołączany do nagłówka HTTP X-XSRF-TOKEN w każdym żądaniu wysyłanym do dowolnego hosta, co pozwala atakującym na podejrzenie wrażliwych informacji.
- GHSA-42h9-826w-cgv3Średnie
Axios w wersjach 0.28.0 i późniejszych zawiera niekontrolowaną rekurencję w formDataToJSON, pomocniku stojącym za publicznym API axios.formToJSON() / nazwanym formToJSON oraz domyślnym przekształceniu żądania używanym, gdy FormData jest wysyłane z typem treści application/json.
- CVE-2025-62718Krytyczne
Podatność w bibliotece Axios przed wersjami 1.15.0 i 0.31.0 nieprawidłowo normalizuje nazwy hostów podczas sprawdzania reguł NO_PROXY. Żądania do adresów pętli zwrotnej, takich jak localhost. (z kropką na końcu) lub [::1] (adres IPv6), omijają dopasowanie NO_PROXY i są kierowane przez skonfigurowany serwer proxy.
- CVE-2026-101909Wysokie
Axios od wersji 0.28.0 do 0.34.0 oraz od 1.15.1 do 1.20.0 przetwarza dziedziczone opcje serializacji i właściwości odwiedzającego dostarczane przez zanieczyszczenie prototypu. Osobna wada zanieczyszczenia prototypu w tym samym procesie dostarcza dziedziczone wartości dots, indexes, metaTokens, maxDepth, visitor lub Blob przed serializacją obiektów. Dziedziczone opcje zmieniają nazewnictwo pól i interpretację danych, maxDepth może wymusić błąd żądania, Blob zmienia obsługę wartości, a zanieczyszczony visitor może wykonać kod, gdy atakujący ma już silniejszą zdolność wstrzyknięcia funkcji.
- CVE-2026-101908Średnie
W Axios od wersji 1.7.0 do 1.20.0 adapter fetch konstruuje Request z oczyszczonymi resolvedOptions, ale następnie wywołuje fetch z oryginalnymi fetchOptions. Osobna wada zanieczyszczenia prototypu w tym samym procesie wypełnia Object.prototype.headers, więc fetchOptions.headers rozwiązuje się przez dziedziczenie. Odziedziczona wartość fetchOptions.headers nadpisuje oczyszczone nagłówki Request przez drugi argument do fetch po konstrukcji Request. Nagłówki kontrolowane przez atakującego mogą zmienić autoryzację, buforowanie, dostęp do usług metadanych lub zachowanie specyficzne dla aplikacji.
Oryginalny opis (angielski, źródło NVD)
axios is vulnerable to read-side prototype-pollution gadgets that can alter request construction when Object.prototype has already been polluted by a separate vulnerability or dependency. In the bodyless method aliases (axios.get(), axios.delete(), axios.head(), axios.options()), inherited data is read via (config || {}).data before config normalization, causing an attacker-controlled body to be sent on requests that did not set one. Additional low-level paths, only reachable when calling exported adapters/helpers (e.g. lib/adapters/http.js, unsafe/helpers/resolveConfig.js) directly with plain configs and no own proxy or paramsSerializer, can inherit polluted proxy values (routing requests through an attacker-controlled proxy) or paramsSerializer values (attacker-controlled URL serialization). These low-level gadgets do not reproduce through normal high-level axios calls on 1.15.2+. The issue is fixed in axios 1.18.0 and 0.33.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

