axios
axios (latest known version: 1.18.1) has 86 known breaking changes on record, each backed by a source URL.
Security advisories
Axios: Invisible JSON Response Tampering via Prototype Pollution Gadget in `parseReviver`
axios Vulnerable to Full Man-in-the-Middle via Prototype Pollution Gadget in `config.proxy`
axios Vulnerable to Credential Theft and Response Hijacking via Prototype Pollution Gadget in Config Merge
Axios has a NO_PROXY Hostname Normalization Bypass that Leads to SSRF
Axios: Excessive recursion in formDataToJSON can cause denial of service
Axios is Vulnerable to Denial of Service via __proto__ Key in mergeConfig
Axios: CRLF Injection in multipart/form-data body via unsanitized blob.type in formDataToStream
Axios is vulnerable to DoS attack through lack of data size check
Axios' HTTP adapter-streamed uploads bypass maxBodyLength when maxRedirects: 0
Axios: unbounded recursion in toFormData causes DoS via deeply nested request data
Axios has a Patch Bypass: Proxy-Authorization Header Injection via Prototype Pollution — Incomplete Null-Prototype Fix
Axios: Header Injection via Prototype Pollution
Allocation of Resources Without Limits or Throttling in Axios
Axios: Nested axios option objects can consume polluted prototype values
axios has DoS & Header Injection via Prototype Pollution Read-Side Gadgets in axios merge functions
Axios: NO_PROXY bypass for 0.0.0.0 local addresses in axios
Axios has Unrestricted Cloud Metadata Exfiltration via Header Injection Chain
Axios Node HTTP adapter can use an inherited proxy after interceptor config cloning
Axios form serializer maxDepth bypass via {} metatoken
Axios: Regular Expression Denial of Service (ReDoS) via Cookie Name Injection
Axios: Proxy-Authorization header leaks to redirect target when proxy is re-evaluated to direct connection
Axios: Fetch adapter `ReadableStream` uploads bypass `maxBodyLength`
axios Requests Vulnerable To Possible SSRF and Credential Leakage via Absolute URL
Axios: no_proxy bypass via IP alias allows SSRF
Axios: Prototype pollution gadgets can alter axios request construction
Axios: HTTP/2 streamed uploads bypass `maxBodyLength`
Axios: Proxy-Authorization Credential Leak to Origin Server Across HTTP-to-HTTPS Redirect in Axios Node.js HTTP Adapter
Axios: Prototype Pollution Gadgets - Response Tampering, Data Exfiltration, and Request Hijacking
axios's shouldBypassProxy does not recognize IPv4-mapped IPv6 addresses, allowing NO_PROXY bypass (incomplete fix for CVE-2025-62718)
Axios: Deep formToJSON Key Recursion Can Cause Denial of Service
Axios: Incomplete Fix for CVE-2025-62718 — NO_PROXY Protection Bypassed via RFC 1122 Loopback Subnet (127.0.0.0/8) in Axios 1.15.0
Axios has prototype pollution read-side gadgets in HTTP adapter that allow credential injection and request hijacking
Axios HTTP/2 Session Cleanup State Corruption Vulnerability
Axios: HTTP adapter streamed responses bypass maxContentLength
Axios: Authentication Bypass via Prototype Pollution Gadget in `validateStatus` Merge Strategy
Axios Cross-Site Request Forgery Vulnerability
Axios: Null Byte Injection via Reverse-Encoding in AxiosURLSearchParams
Axios: Prototype pollution auth subfields can inject Basic auth
Axios: XSRF Token Cross-Origin Leakage via Prototype Pollution Gadget in `withXSRFToken` Boolean Coercion
Recent changes
AxiosURLSearchParams encoder callback switched to arrow function so encoder.call(this) receives the AxiosURLSearchParams instance correctly
Update any code that relies on the previous encoder callback behavior to work with the AxiosURLSearchParams instance context
Fixed runtime crashes, type definition mismatches, and incorrect error handling paths
Node HTTP Adapter now guards socket.setKeepAlive for proxy agent streams, accepts path-only URLs when socketPath is configured, defers environment proxy handling to Node, and explicitly passes maxBodyLength through to follow-redirects
AxiosError#cause is now non-enumerable to prevent circular JSON serialisation failures when errors include nested causes
Rejects malformed `http:` and `https:` URLs that omit `//` with `ERR_INVALID_URL`, and tightens prototype-pollution-safe config reads, stream size limits, FormData depth handling, data URL sizing, and local `NO_PROXY` matching.
Added Node HTTP adapter support for stripping caller-specified sensitive headers on cross-origin redirects to prevent custom auth headers such as API keys from leaking to another origin.
Added `transitional.validateStatusUndefinedResolves` so applications can opt in to treating `validateStatus: undefined` like the option was omitted, while `validateStatus: null` remains the explicit way to accept every status.
* **Redirect Header Safety:** Added Node HTTP adapter support for stripping caller-specified sensitive headers on cross-origin redirects, helping prevent custom auth headers such as API keys from leaking to another origin. (__#10892__) * **URL And Request Hardening:** Rejects malformed `http:` and `https:` URLs that omit `//` with `ERR_INVALID_URL`, while tightening prototype-pollution-safe config reads, stream size limits, FormData depth handling, data URL sizing, and local `NO_PROXY` matching. (__#11000__)
Switched the publish workflow to npm staged publishing for safer, auditable package releases with provenance.
Guarded `socketPath`, `params`, and `paramsSerializer` reads with own-property checks to prevent inherited prototype values from affecting request behavior, including SSRF-sensitive paths.
Added Node HTTP adapter support for zstd response decompression, with `transitional.advertiseZstdAcceptEncoding` controlling whether `zstd` is advertised in `Accept-Encoding`.
Avoided emitting a null `Authorization` header from the GitHub build helper when `GITHUB_TOKEN` is unset.
Corrected `AxiosHeaders.toJSON()` return types and updated CommonJS `isCancel` typings to narrow to `CanceledError<T>`.
Converted `resolveConfig` from an arrow default export to a named function export to avoid webpack and Babel transform interop failures.
Preserved enumerable symbol keys when cloning plain request data through axios merge logic.
Silently skipped empty or whitespace-only header names instead of throwing, matching parsed-header behavior and avoiding React Native response crashes.
Cleared default `Content-Type` for React Native `FormData` so multipart boundaries can be generated correctly.
Preserved user `httpsAgent` TLS options when tunneling HTTPS requests through HTTP CONNECT proxies.
Restored Basic auth on same-origin Node redirects while continuing to strip credentials cross-origin, and aligned the fetch adapter with HTTP adapter behavior for URL-embedded Basic auth.
* **Config Hardening:** Guarded `socketPath`, `params`, and `paramsSerializer` reads with own-property checks to prevent inherited prototype values from affecting request behavior, including SSRF-sensitive paths. (__#10901__, __#10922__) * **Release Publishing:** Switched the publish workflow to npm staged publishing for safer, auditable package releases with provenance. (__#10926__)
Restored Webpack 4 compatibility for the fetch adapter by fixing an "unexpected token" error caused by incompatible syntax.
Reverted support for passing a `URL` object as `config.url` due to regressions; this support will be reintroduced in a later release once underlying issues are addressed.
* **Prototype Pollution Defence-in-Depth:** Hardened `formDataToJSON` against already-polluted `Object.prototype` by walking own properties only, so attacker-controlled keys inherited from a poisoned prototype cannot propagate through deserialization. (__#7413__) * **Proxy Cleartext Leak:** Fixed an issue where HTTPS request data could be transmitted in cleartext to an HTTP proxy under certain configurations. (__#10858__) * **CI Cache Removal:** Removed all GitHub Actions caches as a defence-in-depth measure against cache poisoning vectors in the build pipeline. (__#10882__)
Removed all GitHub Actions caches as a defence-in-depth measure against cache poisoning vectors in the build pipeline.
Fixed an issue where HTTPS request data could be transmitted in cleartext to an HTTP proxy under certain configurations.
Hardened `formDataToJSON` against prototype pollution by walking own properties only, preventing attacker-controlled keys inherited from a poisoned prototype from propagating through deserialization.
Fetch adapter now enforces `maxBodyLength` and `maxContentLength` limits for DoS protection and accidental large upload prevention.
Exported the internal `encode` helper from `buildURL` so userland param serializers can reuse the same encoding logic that axios uses internally.
Exposed `ECONNREFUSED` as a constant on `AxiosError` so callers can match connection-refused failures without comparing string literals.
Check what changed for axios since your installed version, live.
Open the playground →