|
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 | + |
3 | 71 | ## v1.15.0 — April 7, 2026 |
4 | 72 |
|
5 | 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. |
|
0 commit comments