MediumGHSA-vh66-26gq-q6x8CVE-2026-10190830 Sep · 23 days ago
Source ↗

Axios: Prototype pollution gadget in fetch adapter can alter outbound requests.

Does it affect you?

Not read yet

Conditions are read within the hour after an advisory comes in.

Summary Axios fetch adapter requests can be altered by inherited properties on fetchOptions . The adapter resolves method, headers, body, signal, and credentials into resolvedOptions , creates a Request , and then calls fetch(request, fetchOptions) instead of fetch(request, resolvedOptions) . In runtimes such as Node's undici-backed fetch, inherited fetchOptions.headers can override the headers already placed on the Request . Axios does not create the prototype pollution source. This is a read-side gadget that becomes exploitable after same-process prototype pollution. Impact An attacker with

Timeline

30 Sep
23 daysfrom publication to Patchwire
  1. Published by GitHub advisory database30 Sep
  2. Seen by Patchwire23 Oct
  3. Fix released30 Sep
axios1.20.0

Versions of axios

1.x
safe 1.20.0
AffectedSafe

Packages

Stacks

Related alerts(8)

Same packages
Medium
Conditions not read yet

Source summary

Summary Axios request interceptors may return a replacement config object. If an interceptor returns a plain object without an own headers property, dispatchRequest() later evaluates config.headers and can resolve an inherited Object.prototype.headers value. In a process where another vulnerability has polluted Object.prototype.headers , axios can send attacker-controlled headers. Axios does not create the prototype pollution source, and the interceptor itself is trusted caller code. The vulnerable behavior is the post-interceptor axios config read that reopens a prototype-pollution gadget aft

Affected
axios >=1.0.0 <1.20.0
Fixed in
1.20.0
ID
GHSA-j8rh-479h-cp32
Open the alert
Medium
Conditions not read yet

Source summary

Summary Axios contains a guard in the Node HTTP adapter to avoid using an inherited Object.prototype.getHeaders as a FormData header source. The fetch adapter calls the shared resolveConfig() helper before dispatch, and that helper lacks the same guard. If another vulnerability pollutes Object.prototype with FormData-like properties and getHeaders() , the fetch adapter can merge attacker-controlled headers into the outbound request. Axios does not create the prototype pollution source. This is a read-side gadget in the fetch adapter configuration path. Impact An attacker with a prior same-proc

Affected
axios >=1.12.0 <1.20.0
Fixed in
1.20.0
ID
GHSA-4hqw-qxg8-jxx2
Open the alert
High
Conditions not read yet

Source summary

Summary Axios' Node HTTP adapter can act as a read-side prototype-pollution gadget for Node's sensitive createConnection request option. The adapter creates a null-prototype options object, but Node's HTTP client can copy or normalize request options into ordinary objects before connection creation. If Object.prototype.createConnection has been polluted elsewhere in the same process, Node can call the inherited function and create a socket to an attacker-controlled endpoint. Axios does not create the prototype pollution source. The vulnerability is that axios does not set an own safe value for

Affected
axios >=1.15.2 <1.20.0
Fixed in
1.20.0
ID
GHSA-m8m8-qj5v-23w3
Open the alert
Medium
Conditions not read yet

Source summary

Summary Axios supports proxy environment variables and evaluates NO PROXY exclusions in the Node.js adapter. CIDR-form NO PROXY entries such as 127.0.0.0/8 , 10.0.0.0/8 , or 169.254.169.254/32 are not interpreted as IP ranges. As a result, a request to an IP address inside a configured CIDR exclusion can still be sent through the configured proxy. This affects deployments that rely on CIDR notation to keep loopback, private, Kubernetes, CI, or cloud metadata traffic away from proxy infrastructure. Impact If the configured proxy is outside the intended trust boundary, requests that operators ex

Affected
axios >=1.15.0 <1.20.0
Fixed in
1.20.0
ID
GHSA-44g4-m2mj-wpvx
Open the alert
High
Conditions not read yet

Source summary

Summary Axios exposes maxRedirects to limit redirect following, and maxRedirects: 0 is used by applications as a redirect-based SSRF guard. The Node HTTP adapter enforces this option. The fetch adapter does not read it and does not set a Fetch API redirect mode, so the runtime default of redirect: 'follow' applies. Applications are affected when they rely on maxRedirects: 0 and use the fetch adapter, either explicitly or because the runtime selects it. Impact An attacker who controls the initial URL or a redirecting server can cause a fetch-adapter request to follow a redirect even though the

Affected
axios >=1.17.0 <1.20.0
Fixed in
1.20.0
ID
GHSA-r4gj-5m52-g5wh
Open the alert
Medium
Conditions not read yet

Source summary

Summary Axios default-instance requests that omit an explicit method can read an inherited method value from Object.prototype . If another vulnerability in the same process pollutes Object.prototype.method , calls such as axios.request({ url }) and axios({ url }) can send a state-changing HTTP method instead of the expected default GET . Axios does not create the prototype pollution source. This is a read-side gadget in axios request dispatch. Impact In an affected application with a separate prototype-pollution primitive, an attacker can change axios default-instance requests that omit method

Affected
axios >=0.27.2 <0.34.0 · axios >=1.0.0 <1.20.0
Fixed in
0.34.0 · 1.20.0
ID
GHSA-9fr6-4gfg-395g
Open the alert
High
Conditions not read yet

Source summary

Summary Axios for Node.js parses data: URLs in lib/helpers/fromDataURI.js . The current RFC-2397 parser uses a regular expression whose media type groups allow / inside both sides of the type/subtype match. A malformed data: URL containing many slashes and no comma forces the JavaScript regex engine to try many possible placements for the separator before failing. Applications are affected when they pass untrusted URL strings to axios and do not reject or constrain data: URLs before axios parses them. Impact An attacker can make the Node.js event loop spend significant synchronous CPU time par

Affected
axios >=1.16.1 <1.20.0
Fixed in
1.20.0
ID
GHSA-c29m-xwm3-cm6r
Open the alert
High
Conditions not read yet

Source summary

Summary Axios shouldBypassProxy() normalizes hostnames with hostname.replace(/\.+$/, '') . For a hostname shaped as many dots followed by a non-dot, the anchored regex can perform quadratic backtracking. Because axios re-evaluates proxy bypass rules for redirected requests, a malicious server can trigger this synchronous work through a crafted redirect Location . The issue affects Node.js applications that use environment proxy variables with NO PROXY and allow redirects. Impact An attacker-controlled server can return a redirect whose hostname causes the axios process to spend significant CPU

Affected
axios >=1.15.0 <1.20.0
Fixed in
1.20.0
ID
GHSA-mghh-pgcx-3jjj
Open the alert