axios 1.15.0 → 1.15.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,239 @@
1
1
  # Changelog
2
2
 
3
+ ## v1.15.1 — April 19, 2026
4
+
5
+ This release ships a coordinated set of security hardening fixes across headers, body/redirect limits, multipart handling, and XSRF/prototype-pollution vectors, alongside a broad sweep of bug fixes, test migrations, and threat-model documentation updates.
6
+
7
+ ## 🔒 Security Fixes
8
+
9
+ - **Header Injection Hardening:** Tightened validation and sanitisation across request header construction to close the header-injection attack surface. (**#10749**)
10
+
11
+ - **CRLF Stripping in Multipart Headers:** Correctly strips CR/LF from multipart header values to prevent injection via field names and filenames. (**#10758**)
12
+
13
+ - **Prototype Pollution / Auth Bypass:** Replaced unsafe `in` checks with `hasOwnProperty` to prevent authentication bypass via prototype pollution on config objects, with additional regression tests. (**#10761**, **#10760**)
14
+
15
+ - **`withXSRFToken` Truthy Bypass:** Short-circuits on any truthy non-boolean value, so an ambiguous config no longer silently leaks the XSRF token cross-origin. (**#10762**)
16
+
17
+ - **`maxBodyLength` With Zero Redirects:** Enforces `maxBodyLength` even when `maxRedirects` is set to `0`, closing a bypass path for oversized request bodies. (**#10753**)
18
+
19
+ - **Streamed Response `maxContentLength` Bypass:** Applies `maxContentLength` to streamed responses that previously bypassed the cap. (**#10754**)
20
+
21
+ - **Follow-up CVE Completion:** Completes an earlier incomplete CVE fix to fully close the regression window. (**#10755**)
22
+
23
+ ## 🚀 New Features
24
+
25
+ - **AI-Based Docs Translations:** Initial scaffold for AI-assisted translations of the documentation site. (**#10705**)
26
+
27
+ - **`Location` Request Header Type:** Adds `Location` to `CommonRequestHeadersList` for accurate typing of redirect-aware requests. (**#7528**)
28
+
29
+ ## 🐛 Bug Fixes
30
+
31
+ - **FormData Handling:** Removes `Content-Type` when no boundary is present on `FormData` fetch requests, supports multi-select fields, cancels `request.body` instead of the source stream on fetch abort, and fixes a recursion bug in form-data serialisation. (**#7314**, **#10676**, **#10702**, **#10726**)
32
+
33
+ - **HTTP Adapter:** Handles socket-only request errors without leaking keep-alive listeners. (**#10576**)
34
+
35
+ - **Progress Events:** Clamps `loaded` to `total` for computable upload/download progress events. (**#7458**)
36
+
37
+ - **Types:** Aligns `runWhen` type with the runtime behaviour in `InterceptorManager` and makes response header keys case-insensitive. (**#7529**, **#10677**)
38
+
39
+ - **`buildFullPath`:** Uses strict equality in the base/relative URL check. (**#7252**)
40
+
41
+ - **`AxiosURLSearchParams` Regex:** Improves the regex used for param serialisation to avoid edge-case mismatches. (**#10736**)
42
+
43
+ - **Resilient Value Parsing:** Parses out header/config values instead of throwing on malformed input. (**#10687**)
44
+
45
+ - **Docs Artefact Cleanup:** Removes the docs content that was incorrectly committed. (**#10727**)
46
+
47
+ ## 🔧 Maintenance & Chores
48
+
49
+ - **Threat Model & Security Docs:** Ongoing refinement of `THREATMODEL.md`, including Hopper security update, TLS and tag-replay wording, mitigation descriptions, decompression-bomb guidance, and further cleanup. (**#10672**, **#10715**, **#10718**, **#10722**, **#10763**, **#10765**)
50
+
51
+ - **Test Coverage & Migration:** Expanded `shouldBypassProxy` coverage for wildcard/IPv6/edge cases, documented and tested `AxiosError.status`, and migrated `progressEventReducer` tests to Vitest. (**#10723**, **#10725**, **#10741**)
52
+
53
+ - **Type Refactor:** Uses TypeScript utility types to deduplicate literal unions. (**#7520**)
54
+
55
+ - **Repo & CI:** Adds `CODEOWNERS`, switches v1.x releases to an ephemeral release branch, and removes orphaned Bower support. (**#10739**, **#10738**, **#10746**)
56
+
57
+ ## 🌟 New Contributors
58
+
59
+ We are thrilled to welcome our new contributors. Thank you for helping improve axios:
60
+
61
+ - **@curiouscoder-cmd** (**#7252**)
62
+ - **@tryonelove** (**#7520**)
63
+ - **@darwin808** (**#7314**)
64
+ - **@zoontek** (**#10702**)
65
+ - **@AKIB473** (**#10725**)
66
+
67
+ [Full Changelog](https://github.com/axios/axios/compare/v1.15.0...v1.15.1)
68
+
69
+ ---
70
+
71
+ ## v1.15.0 — April 7, 2026
72
+
73
+ This release delivers two critical security patches targeting header injection and SSRF via proxy bypass, adds official runtime support for Deno and Bun, and includes significant CI security hardening.
74
+
75
+ ## 🔒 Security Fixes
76
+
77
+ - **Header Injection (CRLF):** Rejects any header value containing `\r` or `\n` characters to block CRLF injection chains that could be used to exfiltrate cloud metadata (IMDS). Behavior change: headers with CR/LF now throw `"Invalid character in header content"`. (**#10660**)
78
+
79
+ - **SSRF via `no_proxy` Bypass:** Introduces a `shouldBypassProxy` helper that normalises hostnames (strips trailing dots, handles bracketed IPv6) before evaluating `no_proxy`/`NO_PROXY` rules, closing a gap that could cause loopback or internal hosts to be inadvertently proxied. (**#10661**)
80
+
81
+ ## 🚀 New Features
82
+
83
+ - **Deno & Bun Runtime Support:** Added full smoke test suites for Deno and Bun, with CI workflows that run both runtimes before any release is cut. (**#10652**)
84
+
85
+ ## 🐛 Bug Fixes
86
+
87
+ - **Node.js v22 Compatibility:** Replaced deprecated `url.parse()` calls with the WHATWG `URL`/`URLSearchParams` API across examples, sandbox, and tests, eliminating `DEP0169` deprecation warnings on Node.js v22+. (**#10625**)
88
+
89
+ ## 🔧 Maintenance & Chores
90
+
91
+ - **CI Security Hardening:** Added [zizmor](https://github.com/zizmorcore/zizmor) GitHub Actions security scanner; switched npm publish to OIDC Trusted Publishing (removing the long-lived `NODE_AUTH_TOKEN`); pinned all action references to full commit SHAs; narrowed workflow permissions to least privilege; gated the publish step behind a dedicated `npm-publish` environment; and blocked the sponsor-block workflow from running on forks. (**#10618**, **#10619**, **#10627**, **#10637**, **#10641**, **#10666**)
92
+
93
+ - **Docs:** Clarified HTTP/2 support and the unsupported `httpVersion` option; added documentation for header case preservation; improved the `beforeRedirect` example to prevent accidental credential leakage. (**#10644**, **#10654**, **#10624**)
94
+
95
+ - **Dependencies:** Bumped `picomatch`, `handlebars`, `serialize-javascript`, `vite` (×3), `denoland/setup-deno`, and 4 additional dev dependencies to latest versions. (**#10564**, **#10565**, **#10567**, **#10568**, **#10572**, **#10574**, **#10663**, **#10664**, **#10665**, **#10669**, **#10670**)
96
+
97
+ ## 🌟 New Contributors
98
+
99
+ We are thrilled to welcome our new contributors. Thank you for helping improve axios:
100
+
101
+ - **@Kilros0817** (**#10625**)
102
+ - **@shaanmajid** (**#10616**, **#10617**, **#10618**, **#10619**, **#10637**, **#10641**, **#10666**)
103
+ - **@ashstrc** (**#10624**, **#10644**)
104
+ - **@Abhi3975** (**#10589**)
105
+ - **@raashish1601** (**#10573**)
106
+
107
+ [Full Changelog](https://github.com/axios/axios/compare/v1.14.0...v1.15.0)
108
+
109
+ ---
110
+
111
+ ## v1.14.0 — March 27, 2026
112
+
113
+ This release fixes a security vulnerability in the `formidable` dependency, resolves a CommonJS compatibility regression, hardens proxy and HTTP/2 handling, and modernises the build and test toolchain.
114
+
115
+ ## 🔒 Security Fixes
116
+
117
+ - **Formidable Vulnerability:** Upgraded `formidable` from v2 to v3 to address a reported arbitrary-file vulnerability. Updated test server and assertions to align with the v3 API. (**#7533**)
118
+
119
+ ## 🐛 Bug Fixes
120
+
121
+ - **CommonJS Compatibility:** Restored `require('axios')` in Node.js by correcting the `main` field in `package.json` to point to the built CJS bundle. (**#7532**)
122
+
123
+ - **Fetch Adapter:** Cancel the `ReadableStream` body after the request stream capability probe to prevent resource leaks. (**#7515**)
124
+
125
+ - **Proxy:** Upgraded `proxy-from-env` to v2 and switched to the named `getProxyForUrl` export, fixing proxy detection from environment variables and resolving CJS bundling errors. (**#7499**)
126
+
127
+ - **HTTP/2:** Close detached HTTP/2 sessions on timeout to free resources when no new requests arrive. (**#7457**)
128
+
129
+ - **Headers:** Trim trailing CRLF characters from normalised header values. (**#7456**)
130
+
131
+ ## 🔧 Maintenance & Chores
132
+
133
+ - **Toolchain Modernisation:** Migrated test suite to Vitest, updated ESLint to v10, upgraded Rollup and `@rollup/plugin-babel`, migrated to Husky 9, upgraded TypeScript to latest, and modernised the Express test harness. (**#7484**, **#7489**, **#7498**, **#7505**, **#7506**, **#7507**, **#7508**, **#7509**, **#7510**, **#7516**, **#7522**)
134
+
135
+ - **Dependencies:** Bumped `multer` to v2, `minimatch`, `tar`, `pacote`, `@babel/preset-env`, and additional dev dependencies. (**#7453**, **#7480**, **#7491**, **#7504**, **#7517**, **#7531**)
136
+
137
+ ## 🌟 New Contributors
138
+
139
+ We are thrilled to welcome our new contributors. Thank you for helping improve axios:
140
+
141
+ - **@penkzhou** (**#7515**)
142
+ - **@aviu16** (**#7456**)
143
+ - **@fedotov** (**#7457**)
144
+
145
+ [Full Changelog](https://github.com/axios/axios/compare/v1.13.6...v1.14.0)
146
+
147
+ ---
148
+
149
+ ## v1.13.6 — February 27, 2026
150
+
151
+ This release adds React Native Blob support, fixes several enumeration and export regressions, and patches FormData detection for WeChat Mini Program environments.
152
+
153
+ ## 🚀 New Features
154
+
155
+ - **React Native Blob Support:** Axios now correctly handles native Blob objects in React Native environments. (**#5764**)
156
+
157
+ ## 🐛 Bug Fixes
158
+
159
+ - **AxiosError:** Fixed `AxiosError.from` not copying the `status` field from the source error. (**#7403**)
160
+
161
+ - **AxiosError:** Made the `message` property enumerable so it appears in `JSON.stringify` output and `Object.keys`. (**#7392**)
162
+
163
+ - **FormData Detection:** Corrected safe FormData detection for WeChat Mini Program environments. (**#7324**)
164
+
165
+ - **React Native / Browserify Export:** Fixed broken module export that caused import failures in React Native and Browserify. (**#7386**)
166
+
167
+ ## 🔧 Maintenance & Chores
168
+
169
+ - **Dependencies:** Migrated `@rollup/plugin-babel` from v5 to v6 and bumped the development dependencies group. (**#7424**, **#7432**)
170
+
171
+ ## 🌟 New Contributors
172
+
173
+ We are thrilled to welcome our new contributors. Thank you for helping improve axios:
174
+
175
+ - **@moh3n9595** (**#5764**)
176
+ - **@skrtheboss** (**#7403**)
177
+ - **@ybbus** (**#7392**)
178
+ - **@Shiwaangee** (**#7324**)
179
+ - **@Gudahtt** (**#7386**)
180
+
181
+ [Full Changelog](https://github.com/axios/axios/compare/v1.13.5...v1.13.6)
182
+
183
+ ---
184
+
185
+ ## v1.13.5 — February 8, 2026
186
+
187
+ This release patches a prototype pollution denial-of-service vulnerability, fixes a missing `status` field regression in `AxiosError`, adds interceptor ordering control, and introduces URL validation for `isAbsoluteURL`.
188
+
189
+ ## 🔒 Security Fixes
190
+
191
+ - **Prototype Pollution (DoS):** Hardened `mergeConfig` to ignore `__proto__`, `constructor`, and `prototype` keys, preventing denial-of-service via prototype pollution when merging user-supplied config. (**#7369**)
192
+
193
+ ## 🚀 New Features
194
+
195
+ - **`isAbsoluteURL` Validation:** Added input validation to `isAbsoluteURL` to handle malformed or unexpected input gracefully. (**#7326**)
196
+
197
+ ## 🐛 Bug Fixes
198
+
199
+ - **AxiosError `status`:** Restored the `status` field on `AxiosError` instances, which was missing in v1.13.3 and later. (**#7368**)
200
+
201
+ - **Interceptor Ordering:** Added a `useLegacyInterceptorOrder` option to restore pre-v1.13 interceptor execution order for applications relying on the previous behaviour. ([569f028](https://github.com/axios/axios/commit/569f028a5878faaec8d7d138ba686aac407bda4c))
202
+
203
+ ## 🔧 Maintenance & Chores
204
+
205
+ - **CI:** Fixed run conditions and updated workflow YAMLs. (**#7372**, **#7373**)
206
+
207
+ - **Dependencies:** Bumped `karma-sourcemap-loader` and minor package versions. (**#7356**, **#7360**)
208
+
209
+ ## 🌟 New Contributors
210
+
211
+ We are thrilled to welcome our new contributors. Thank you for helping improve axios:
212
+
213
+ - **@asmitha-16** (**#7326**)
214
+
215
+ [Full Changelog](https://github.com/axios/axios/compare/v1.13.4...v1.13.5)
216
+
217
+ ---
218
+
219
+ ## v1.13.4 — January 27, 2026
220
+
221
+ Patch release fixing regressions introduced in v1.13.3, including TypeScript export compatibility and CI/build stability.
222
+
223
+ ## 🐛 Bug Fixes
224
+
225
+ - **v1.13.3 Regressions:** Fixed multiple issues introduced by the v1.13.3 release, including broken merge configs. (**#7352**)
226
+
227
+ - **TypeScript Exports:** Corrected TypeScript export declarations to restore proper type resolution. (**#4884**)
228
+
229
+ ## 🔧 Maintenance & Chores
230
+
231
+ - **CI & Build:** Refactored CI pipeline and build configuration for stability. (**#7340**)
232
+
233
+ [Full Changelog](https://github.com/axios/axios/compare/v1.13.3...v1.13.4)
234
+
235
+ ---
236
+
3
237
  ## [1.13.3](https://github.com/axios/axios/compare/v1.13.2...v1.13.3) (2026-01-20)
4
238
 
5
239
  ### Bug Fixes