unstale

npm / axios

axios

What changed in axios 0.31 to 1, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-17.

29 breaking61 security17 new APIs and options2 performance10 behavior and defaults3 tooling82 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.1.0 on npm

axios 1180 changes

Breaking changes 23

  • Invalid DNS lookup and httpVersion failures are now standardized as AxiosError.ERR_BAD_OPTION_VALUE.

    1.20.0release notes

  • XHR requests canceled by navigation now reject with ECONNABORTED instead of resolving with status 0.

    1.20.0release notes

  • Inherited properties no longer influence serializer options, default methods, interceptor-returned headers, or redirect hooks; required values must be own properties.

    0.34.0, 1.20.0release notessecurity advisory

  • getSetCookie() now consistently returns arrays for present values.

    1.19.0release notes

  • The dependency floor is now ^4.0.6 to prevent fresh installations from resolving versions affected by a CRLF injection vulnerability.

    1.19.0release notes

  • Path splitting now recognizes only dot and bracket notation, preserving literal punctuation in keys.

    1.19.0release notes

  • Requests are not dispatched after synchronous request interceptors fail unless their paired rejection handler resolves successfully.

    1.19.0release notes

  • The Node HTTP adapter strips caller-specified sensitive headers on cross-origin redirects to prevent credentials such as API keys from leaking.

    1.18.0release notes

  • Malformed http: and https: URLs without // are rejected with ERR_INVALID_URL.

    1.18.0release notes

  • Form serialisation now enforces bounded depth checks.

    0.33.0, 1.18.0release notessecurity advisory

  • Passing a URL object as config.url is no longer supported because of regressions.

    1.16.1release notes

  • The fetch adapter now enforces maxBodyLength, providing protection against accidental large uploads and related denial-of-service risks.

    1.16.0release notes

  • Merged config and header objects now have null prototypes, requiring explicit own-property checks and avoiding implicit string coercion.

    0.32.0, 1.16.0release notessecurity advisory

  • Protocol parsing now requires a colon in the protocol separator, so loosely matching strings may no longer be recognized.

    1.16.0release notes

  • The Node HTTP adapter strips Proxy-Authorization when no proxy is in use.

    0.32.0, 1.16.0release notessecurity advisory

  • Rejects non-string socketPath values and disallowed paths with AxiosError ERR_BAD_OPTION_VALUE.

    1.15.2release notes

  • URL encoding no longer converts %00 into a null byte, preventing null-byte injection in query strings.

    0.31.1, 1.15.1release notessecurity advisory

  • Exceeding FormData or params recursion depth now throws AxiosError with this code.

    0.31.1, 1.15.1release notessecurity advisory

  • FormData detection now rejects plain or null-prototype objects and requires append.

    0.31.1, 1.15.1release notessecurity advisory

  • maxBodyLength is now enforced for streamed uploads using native http or https with maxRedirects set to 0.

    0.31.1, 1.15.1release notessecurity advisory

  • maxContentLength is now enforced for responseType stream responses.

    0.31.1, 1.15.1release notessecurity advisory

  • Truthy non-boolean values now short-circuit XSRF token handling, preventing ambiguous configuration from leaking tokens cross-origin.

    1.15.1release notes

  • Only an own boolean true value now enables cross-origin XSRF headers.

    0.31.1, 1.15.1release notessecurity advisory

Security 57

  • Axios: CIDR-form NO_PROXY entries are ignored, causing proxy exclusion bypass for internal IP ranges

    1.20.0security advisory

  • Axios: Denial of Service via Unhandled 'error' Event in HTTP/2 ClientHttp2Session Initialization

    1.20.0security advisory

  • Axios: Fetch Adapter Header Injection via Inherited FormData getHeaders

    1.20.0security advisory

  • Axios: Header Injection via Inherited headers After Minimal Interceptor

    1.20.0security advisory

  • Axios: HTTP/2 adapter bypasses configured DNS lookup and proxy controls

    1.20.0security advisory

  • Axios: maxRedirects: 0 is not enforced by the fetch adapter, allowing redirect-based SSRF

    1.20.0security advisory

  • Axios: Node HTTP adapter prototype-pollution gadget allows request socket hijack via inherited createConnection

    1.20.0security advisory

  • Axios: Prototype Pollution Gadget in axios toFormData Options

    0.34.0, 1.20.0security advisory

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

    1.20.0security advisory

  • Axios: ReDoS in fromDataURI data: URL parser freezes the Node event loop (DoS)

    1.20.0security advisory

  • Axios: ReDoS (O(N²)) in shouldBypassProxy host normalization, reachable via untrusted redirect Location

    1.20.0security advisory

  • Hardened behavioral configuration reads against prototype pollution and normalized unsafe interceptor replacement objects.

    1.20.0release notes

  • Malformed-protocol errors now include normalized, safely redacted offending URLs.

    1.19.0release notes

  • 0.0.0.0 is now treated as local for proxy bypass decisions.

    0.33.0, 1.18.0release notessecurity advisory

  • Axios: Deep formToJSON Key Recursion Can Cause Denial of Service

    0.33.0, 1.18.0security advisory

  • Axios: Fetch adapter ReadableStream uploads bypass maxBodyLength

    1.18.0security advisory

  • Axios form serializer maxDepth bypass via {} metatoken

    0.33.0, 1.18.0security advisory

  • Axios: HTTP/2 streamed uploads bypass maxBodyLength

    1.18.0security advisory

  • Axios Node HTTP adapter can use an inherited proxy after interceptor config cloning

    0.33.0, 1.18.0security advisory

  • Axios: Prototype pollution auth subfields can inject Basic auth

    1.18.0security advisory

  • Axios: Prototype pollution gadgets can alter axios request construction

    0.33.0, 1.18.0security advisory

  • FormData depth handling is tightened.

    1.18.0release notes

  • Local NO_PROXY matching is tightened.

    1.18.0release notes

  • Configuration reads are hardened against prototype pollution.

    1.18.0release notes

  • Nested request options now use own-property reads for auth, params, proxy, and data handling.

    0.33.0, 1.18.0release notessecurity advisory

  • Stream size handling is tightened to improve request and response safety.

    1.18.0release notes

  • Reads are guarded with own-property checks so inherited prototype values cannot affect request behavior.

    1.17.0release notes

  • Reads are guarded with own-property checks so inherited prototype values cannot affect request behavior.

    1.17.0release notes

  • Reads are guarded with own-property checks so inherited prototype values cannot affect request behavior, including SSRF-sensitive paths.

    1.17.0release notes

  • Own-property traversal prevents attacker-controlled keys inherited from a poisoned prototype from propagating through deserialization.

    1.16.1release notes

  • HTTPS request data is no longer transmitted in cleartext to an HTTP proxy under affected configurations.

    1.16.1release notes

  • Allocation of Resources Without Limits or Throttling in Axios

    1.16.0security advisory

  • Axios has a Patch Bypass: Proxy-Authorization Header Injection via Prototype Pollution — Incomplete Null-Prototype Fix

    1.16.0security advisory

  • Axios: Proxy-Authorization Credential Leak to Origin Server Across HTTP-to-HTTPS Redirect in Axios Node.js HTTP Adapter

    0.32.0, 1.16.0security advisory

  • axios Vulnerable to Full Man-in-the-Middle via Prototype Pollution Gadget in config.proxy

    1.16.0security advisory

  • The fetch adapter now enforces maxContentLength, providing protection against oversized responses.

    1.16.0release notes

  • Proxy bypass matching now supports canonical IPv4-mapped IPv6 forms.

    0.32.0, 1.16.0release notessecurity advisory

  • Cookie names are read literally, and XSRF-token evaluation respects only own properties.

    0.32.0, 1.16.0release notessecurity advisory

  • Axios has prototype pollution read-side gadgets in HTTP adapter that allow credential injection and request hijacking

    1.15.2security advisory

  • Axios: Invisible JSON Response Tampering via Prototype Pollution Gadget in parseReviver

    1.15.2security advisory

  • Configuration processing now ignores inherited polluted properties, preventing sensitive request settings from being altered.

    1.15.2release notes

  • Axios: Authentication Bypass via Prototype Pollution Gadget in validateStatus Merge Strategy

    0.31.1, 1.15.1security advisory

  • Axios: CRLF Injection in multipart/form-data body via unsanitized blob.type in formDataToStream

    1.15.1security advisory

  • 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

    0.31.1, 1.15.1security advisory

  • Axios: no_proxy bypass via IP alias allows SSRF

    0.31.1, 1.15.1security advisory

  • Multipart header values now strip CR/LF characters to prevent injection through field names and filenames.

    1.15.1release notes

  • An earlier incomplete CVE fix is completed to fully close the regression window.

    1.15.1release notes

  • The Node HTTP adapter no longer merges inherited getHeaders values, blocking injected headers from polluted prototypes.

    0.31.1, 1.15.1release notessecurity advisory

  • Configuration checks no longer rely on unsafe in checks, preventing authentication bypass through prototype pollution.

    1.15.1release notes

  • Request header construction now validates and sanitises values more strictly to close the header-injection attack surface.

    1.15.1release notes

  • Request body limits are enforced even when maxRedirects is set to 0, closing an oversized-body bypass.

    1.15.1release notes

  • Streamed responses now enforce maxContentLength instead of bypassing the configured cap.

    1.15.1release notes

  • Config merging uses own-property checks and returns null-prototype objects, preventing polluted prototypes from hijacking requests.

    0.31.1, 1.15.1release notessecurity advisorysecurity advisory

  • Fixed a vulnerability that could exfiltrate cloud metadata through a header injection chain.

    0.31.0, 1.15.0release notessecurity advisory

  • Fixed hostname normalisation bypass handling that could enable Server-Side Request Forgery.

    0.31.0, 1.15.0release notessecurity advisory

  • Axios restricts merging the __proto__ key to prevent prototype pollution and Denial of Service during configuration merging.

    0.30.3, 1.13.5release notessecurity advisoryrelease notes

  • Axios HTTP/2 Session Cleanup State Corruption Vulnerability

    1.13.2security advisory

New APIs and options 14

  • Added the RFC 9110 status-code alias ContentTooLarge for HTTP 413 responses.

    1.20.0release notes

  • Added opt-in quote-aware, RFC-style HTTP parameter parsing while preserving legacy parsing behavior.

    1.19.0release notes

  • Public TypeScript declarations now support a generic params type across APIs, responses, errors, adapters, and serializers.

    1.19.0release notes

  • Applications can opt in to treating validateStatus: undefined like an omitted option, while null still accepts every status.

    1.18.0release notes

  • Controls whether zstd is advertised in the Accept-Encoding header.

    1.17.0release notes

  • The Node HTTP adapter now supports zstd response decompression.

    1.17.0release notes

  • Exposed ECONNREFUSED as a constant so callers can match connection-refused failures without comparing string literals.

    1.16.0release notes

  • Re-exported create from the package index.

    1.16.0release notes

  • Exported the internal encode helper from buildURL so userland parameter serializers can reuse axios encoding logic.

    1.16.0release notes

  • Added support for the QUERY HTTP method across adapters and type definitions.

    1.16.0release notes

  • Adds an opt-in allowlist for Unix domain socket paths used by the Node HTTP adapter.

    1.15.2release notes

  • Axios now supports React Native Blob objects, improving integrations that send or handle Blob data.

    1.13.6release notes

  • AxiosRequestConfig now accepts undefined as a value.

    1.13.3release notes

  • Adds HTTP2 support to Axios HTTP requests.

    1.13.0release notes

Performance 1

  • Removed browser-facing Buffer.from usage to avoid unnecessary polyfills.

    1.19.0release notes

Behavior and default changes 8

  • Set values are serialized as arrays in JSON-compatible snapshots.

    1.19.0release notes

  • Environment proxy handling is deferred to Node.

    1.18.1release notes

  • Data URL sizing is tightened.

    1.18.0release notes

  • Empty or whitespace-only header names are silently skipped instead of throwing.

    1.17.0release notes

  • Proxy requests now preserve user-supplied Host headers, enabling virtual-host-style routing through a proxy.

    1.16.0release notes

  • FormData handling now supports multi-select fields.

    1.15.1release notes

  • Response header key types are now case-insensitive.

    1.15.1release notes

  • HTTPS connections now use port 443 by default.

    1.13.3release notes

Tooling 2

  • CommonJS typings now narrow isCancel to CanceledError<T>.

    1.17.0release notes

  • TypeScript IntelliSense now provides suggestions for string literals in widened unions.

    1.13.3release notes

Fixes and other changes 75

  • Interceptor handler arrays no longer grow unbounded after ejections, and nullish public handlers remain safe to operate on.

    1.20.0release notes

  • Successful XHR downloads now flush their final progress callback during the live loadend dispatch.

    1.20.0release notes

  • Corrected how timeoutErrorMessage is merged into request configuration.

    1.20.0release notes

  • Added the missing Cloudflare 520 WebServerReturnsAnUnknownError status and matching ESM/CJS declarations.

    1.19.0release notes

  • Already-aborted input signals are propagated immediately when abort signals are composed.

    1.19.0release notes

  • Useful AxiosError messages are synthesized from otherwise-empty AggregateError instances.

    1.19.0release notes

  • Combining base URLs now removes repeated trailing slashes.

    1.19.0release notes

  • Empty first values are preserved for duplicate singleton headers.

    1.19.0release notes

  • Base64 data URL size estimation is corrected so maxContentLength is enforced consistently by HTTP and Fetch adapters.

    1.19.0release notes

  • Own-enumerable symbol-keyed fields are preserved through configuration merging.

    1.19.0release notes

  • Proxy bypass matching now canonicalizes IPv4 shorthand, octal, and hexadecimal forms.

    1.19.0release notes

  • Wildcard entries are now honored within comma- or space-separated proxy bypass lists.

    1.19.0release notes

  • Final Node.js download progress events are delivered before streamed responses close.

    1.19.0release notes

  • Malformed negative progress values are clamped to zero.

    1.19.0release notes

  • AxiosError#cause is now non-enumerable, preventing circular JSON serialization failures when errors include nested causes.

    1.18.1release notes

  • The encoder callback now receives the AxiosURLSearchParams instance as this.

    1.18.1release notes

  • maxBodyLength is explicitly passed through to follow-redirects.

    1.18.1release notes

  • Several runtime crashes, type definition mismatches, and incorrect error handling paths were fixed.

    1.18.1release notes

  • Socket keep-alive handling is guarded for proxy agent streams, avoiding failures with those streams.

    1.18.1release notes

  • Path-only URLs are accepted when socketPath is configured.

    1.18.1release notes

  • Corrected the return types of AxiosHeaders.toJSON().

    1.17.0release notes

  • Basic auth is restored on same-origin Node redirects, while credentials continue to be stripped cross-origin.

    1.17.0release notes

  • React Native FormData no longer receives a default Content-Type, allowing multipart boundaries to be generated correctly.

    1.17.0release notes

  • The fetch adapter now matches HTTP adapter behavior for URL-embedded Basic auth.

    1.17.0release notes

  • User TLS options are preserved when tunneling HTTPS requests through HTTP CONNECT proxies.

    1.17.0release notes

  • Cloning plain request data now preserves enumerable symbol keys through axios merge logic.

    1.17.0release notes

  • Stricter RFC 2397 matching fixes edge cases in data: URL handling.

    1.16.1release notes

  • The context.source type is now optional to align with the ES2023 specification.

    1.16.1release notes

  • Non-ASCII header content remains intact when requests pass through interceptors.

    1.16.1release notes

  • The fetch adapter no longer uses syntax Webpack 4 cannot parse, restoring compatibility for legacy bundler users.

    1.16.1release notes

  • Malformed ProgressEvent payloads no longer crash uploads when loaded or total are missing or invalid.

    1.16.1release notes

  • The fetch adapter now preserves the original abort reason instead of replacing it with a generic error.

    1.16.0release notes

  • The parsed response is now attached to AxiosError when JSON.parse fails inside dispatchRequest.

    1.16.0release notes

  • Aborted streams now preserve the partial response object on AxiosError when headers have already arrived.

    1.16.0release notes

  • Credentials embedded in URLs are now URL-decoded before being sent on the wire.

    1.16.0release notes

  • Global access is deferred so importing the fetch adapter no longer throws a TypeError in restricted environments.

    1.16.0release notes

  • settle no longer emits errors with undefined error codes.

    1.16.0release notes

  • The timeout option is now honored during the connect phase when redirects are disabled.

    1.16.0release notes

  • The fetch adapter now sets the User-Agent header to match the HTTP adapter.

    1.16.0release notes

  • URL encoding now uses modern UTF-8 encoding instead of deprecated unescape(), making non-ASCII URL handling spec-correct.

    1.16.0release notes

  • Parameter serialisation uses an improved regex to avoid edge-case mismatches.

    1.15.1release notes

  • The base and relative URL check now uses strict equality.

    1.15.1release notes

  • Fetch FormData requests now omit Content-Type when no boundary is present.

    1.15.1release notes

  • Form-data serialisation no longer recurses incorrectly.

    1.15.1release notes

  • Malformed header and configuration values are parsed out instead of causing exceptions.

    1.15.1release notes

  • Socket-only request errors no longer leak keep-alive listeners.

    1.15.1release notes

  • Computable upload and download progress events now clamp loaded to total.

    1.15.1release notes

  • CommonRequestHeadersList now includes Location for accurate typing of redirect-aware requests.

    1.15.1release notes

  • Fetch abort handling now cancels request.body instead of the source stream.

    1.15.1release notes

  • The runWhen type now matches InterceptorManager runtime behavior.

    1.15.1release notes

  • Added compatibility checks and documentation for running Axios in Deno and Bun environments.

    1.15.0release notes

  • Usage was replaced to address Node.js deprecation warnings in recent Node.js versions.

    1.15.0release notes

  • Environment-based proxy handling is fixed for proxy-from-env v2 usage.

    1.14.0release notes

  • Detached HTTP/2 sessions are closed on timeout to avoid lingering sessions.

    1.14.0release notes

  • The package main entry regression affecting CommonJS consumers is fixed.

    1.14.0release notes

  • Trailing CRLF is trimmed from normalised header values.

    1.14.0release notes

  • ReadableStream instances created during request-stream capability probing are cancelled to prevent async resource leaks.

    1.14.0release notes

  • AxiosError.message is now enumerable, making it visible during property enumeration.

    1.13.6release notes

  • AxiosError.from now copies status from the source error, improving error propagation.

    1.13.6release notes

  • FormData detection is now safe in the WeChat Mini Program environment.

    1.13.6release notes

  • Module exports now work correctly in React Native and Browserify environments.

    1.13.6release notes

  • Ensures AxiosError includes the status field on and after v1.13.3.

    1.13.5release notes

  • Adds input validation to isAbsoluteURL.

    1.13.5release notes

  • AxiosError.cause is typed as Error again instead of unknown.

    1.13.3release notes

  • AxiosError is converted into a native error.

    1.13.3release notes

  • The AxiosInterceptorManager interface now includes handlers.

    1.13.3release notes

  • Axios is compatible with frozen prototypes.

    1.13.3release notes

  • Errors are handled in the same interceptor where they occur.

    1.13.3release notes

  • The package main field now corresponds to CommonJS artifacts.

    1.13.3release notes

  • A Bun exports condition loads the Node.js build instead of the browser build.

    1.13.3release notes

  • Empty proxy authorization no longer produces an unclear error message.

    1.13.3release notes

  • The http2 module now uses a default export, enabling stubs to work.

    1.13.2release notes

  • Fixed socket hang up errors for keep-alive requests when using timeouts.

    1.13.2release notes

  • Fixed an interruption affecting data streams for responses with non-OK HTTP statuses.

    1.13.1release notes

  • Prevents a TypeError when config.env is undefined in the fetch implementation.

    1.13.0release notes

axios 0.347 changes

Breaking changes 1

  • TypeScript rejects Promise, function, and custom-toString object header values; resolve or explicitly convert them before assignment.

    0.34.0release notes

New APIs and options 1

  • Requests and instances can enable caller stack capture to append original caller frames to asynchronous error stacks.

    0.34.0release notes

Behavior and default changes 1

  • NO_PROXY and no_proxy now support IPv4 and IPv6 CIDR ranges, allowing matching IP destinations to bypass the proxy.

    0.34.0release notes

Fixes and other changes 4

  • CanceledError.reason now preserves AbortSignal.reason, including objects and falsy values, through config merging.

    0.34.0release notes

  • Axios can load alongside a read-only Error.prototype.toJSON while preserving supplied own property descriptors and setters.

    0.34.0release notes

  • HTTP(S) proxy schemes accept optional trailing colons, casing, and surrounding whitespace; invalid nonempty values fail before connecting.

    0.34.0release notes

  • Synchronous interceptor and dispatch failures pass through response interceptors, with recovery promises awaited before dispatch.

    0.34.0release notes

axios 0.331 changes

Fixes and other changes 1

  • Nullish Basic Auth credentials are now normalised.

    0.33.0release notes

axios 0.325 changes

Breaking changes 2

  • AxiosError.toJSON() redacts sensitive keys by default, with behavior configurable through config.redact and defaults.redact.

    0.32.0release notes

  • socketPath is gated by an allowedSocketPaths allowlist that accepts strings or arrays and is normalized.

    0.32.0release notes

New APIs and options 1

  • The public TypeScript declarations and runtime defaults now include formDataHeaderPolicy.

    0.32.0release notes

Behavior and default changes 1

  • The browser XHR adapter applies stricter own-property checks when reading configuration and headers.

    0.32.0release notes

Fixes and other changes 1

  • URL parameter serialization keeps %00 encoded and applies consistent encoding throughout.

    0.32.0release notes

axios 0.3111 changes

Breaking changes 3

  • Bower support was removed; installs via Bower must migrate to npm or a CDN.

    0.31.1release notes

  • Committed dist bundles were removed; consumers using the git tree must migrate to npm or a CDN.

    0.31.1release notes

  • The Grunt package2bower task was removed as part of dropping Bower support.

    0.31.1release notes

Security 4

  • Proxy bypass enforcement now handles wildcards, ports, loopback aliases, IPv6, and trailing-dot hostnames before parsing proxy URLs.

    0.31.0release notes

  • Publishes are gated behind a required npm-publish GitHub Environment with configurable reviewer protections.

    0.31.0release notes

  • Outgoing header values are sanitized to strip invalid bytes, CRLF sequences, and boundary whitespace, including array values.

    0.31.0release notes

  • Adds zizmor security scanning with SARIF upload to code scanning for the CI/CD supply chain.

    0.31.0release notes

New APIs and options 1

  • toFormData and params serialization now support configurable recursion depth, with default 100 and Infinity disabling the limit.

    0.31.1release notes

Performance 1

  • Fixes excessive computation when isEmptyObject() receives a large string.

    0.31.0release notes

Tooling 1

  • Adds an OIDC Trusted Publishing workflow with npm provenance attestations.

    0.31.0release notes

Fixes and other changes 1

  • AxiosInstance methods now resolve to Promise<R>, and the generic call signature correctly enforces the response data type.

    0.31.0release notes