[DWS] Update axios to 1.19.0 and form-data to 4.0.6 (30 advisories) - #15
Merged
Conversation
Both are runtime dependencies, so every consumer of this library inherits the vulnerable versions. axios 1.13.2 carried 29 open advisories. The ones reachable from ordinary use of this client: SSRF via NO_PROXY hostname and IP-alias bypass, authentication bypass through a prototype-pollution gadget in the validateStatus merge strategy, header injection, CRLF injection in multipart/form-data bodies, and Proxy-Authorization credential leakage across an HTTP-to-HTTPS redirect. form-data 4.0.5 allowed CRLF injection via unescaped multipart field names and filenames (GHSA-hmw2-7cc7-3qxx). Every file upload is built with form-data and dispatched through axios, so the multipart and header injection paths were directly exercised by the library's own request construction in src/http.ts. Both fixes were already within the declared semver ranges and needed only a lockfile refresh. No API change. `npm audit --omit=dev` now reports zero vulnerabilities. Changelog entries land under 3.0.0, which is prepared in-repo but not yet published to npm (latest is 2.1.0). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
HungKNguyen
approved these changes
Aug 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
axios@1.13.2andform-data@4.0.5are runtimedependencies, so every consumer of this SDK inherits them. Between them they carry 30 open advisories, several rated high, and the affected code paths are the ones this library uses on every single request.npm audit --omit=devreported 15 vulnerabilities before this change and reports 0 after.Both fixes were already inside the declared semver ranges (
^1.13.2→ 1.19.0,^4.0.5→ 4.0.6). They had simply never been installed — this is a lockfile refresh, not a version-range change.What changed
axios1.13.2→1.19.0— clears 29 advisories.form-data4.0.5→4.0.6— clears CRLF injection via unescaped multipart field names and filenames (GHSA-hmw2-7cc7-3qxx).CHANGELOG.md—### Securityentry under3.0.0.No source change. No API change.
Why this is reachable, not theoretical
src/http.tsbuilds every file upload withform-dataand dispatches every request throughaxios. The advisories below sit directly on that path:multipart/form-databodiesvalidateStatusmerge gadgetNO_PROXYhostname / IP-alias bypassProxy-Authorizationleak across HTTP→HTTPS redirectDesign notes worth a look
package.jsonplus the lockfile. The dependency/tooling work is stacked on top in a follow-up PR.3.0.0, not a new version.3.0.0is prepared in-repo but was never published — npmlatestis2.1.0— so this folds into the pending release rather than needing its own.3.0.0is where these fixes first reach users. Anyone still on2.1.0remains exposed;2.1.0pinsaxios@^1.13.2andform-data@^4.0.5.Verification
All commands run on the branch head.
Production dependency tree is clean (was 15 vulnerabilities):
Definition of done (
AGENTS.md) — all pass:The unit suite is the relevant regression signal:
src/__tests__/unit/http.test.tscovers request construction, multipart assembly, and error mapping across the axios boundary. 315/315 pass, unchanged from the pre-upgrade baseline onmain.Build:
Integration tests (
npm run test:integration) were not run here — they require a live API key.