fix: upgrade lerna to 9.0.7 to resolve axios CVE-2026-40175#636
Draft
fix: upgrade lerna to 9.0.7 to resolve axios CVE-2026-40175#636
Conversation
Agent-Logs-Url: https://github.com/mongodb-js/devtools-shared/sessions/f1fb216a-9efb-48ab-90cd-e81348420b69 Co-authored-by: nirinchev <2315687+nirinchev@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Fix Axios unrestricted cloud metadata exfiltration vulnerability
fix: upgrade axios to 1.15.0 to resolve CVE-2026-40175
Apr 15, 2026
Collaborator
|
@copilot rather than overriding the axios version, can we instead upgrade lerna to latest? |
Agent-Logs-Url: https://github.com/mongodb-js/devtools-shared/sessions/0e77e642-ca5b-4a66-92ac-631dea06ba8c Co-authored-by: nirinchev <2315687+nirinchev@users.noreply.github.com>
Author
Done in 0db3990. Upgraded |
Copilot
AI
changed the title
fix: upgrade axios to 1.15.0 to resolve CVE-2026-40175
fix: upgrade lerna to 9.0.7 to resolve axios CVE-2026-40175
Apr 15, 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.
axios@1.4.0(transitive vianx@16.3.2) is vulnerable to CRLF header injection (CVE-2026-40175, CVSS 9.9) — when prototype pollution occurs anywhere in the stack, Axios merges polluted properties into request headers without sanitizing\r\n, enabling request smuggling and AWS IMDSv2 bypass.Changes
package.json: Upgradedlernafrom^7.1.1to^9.0.7(latest)package-lock.json: Updated dependency tree —lerna@9.0.7brings innx@22.6.5, which depends directly onaxios@1.15.0(the patched version)Reachability
axiosis not called directly anywhere in this codebase — it is used solely bynxinternally. The vulnerable path (application code invoking axios after prototype pollution) is not reachable. This update is defense-in-depth and clears the scanner alert.Original prompt
This section details the Dependabot vulnerability alert you should resolve
<alert_title>Axios has Unrestricted Cloud Metadata Exfiltration via Header Injection Chain</alert_title>
<alert_description># Vulnerability Disclosure: Unrestricted Cloud Metadata Exfiltration via Header Injection Chain
Summary
The Axios library is vulnerable to a specific "Gadget" attack chain that allows Prototype Pollution in any third-party dependency to be escalated into Remote Code Execution (RCE) or Full Cloud Compromise (via AWS IMDSv2 bypass).
While Axios patches exist for preventing check pollution, the library remains vulnerable to being used as a gadget when pollution occurs elsewhere. This is due to a lack of HTTP Header Sanitization (CWE-113) combined with default SSRF capabilities.
Severity: Critical (CVSS 9.9)
Affected Versions: All versions (v0.x - v1.x)
Vulnerable Component:
lib/adapters/http.js(Header Processing)Usage of "Helper" Vulnerabilities
This vulnerability is unique because it requires Zero Direct User Input.
If an attacker can pollute
Object.prototypevia any other library in the stack (e.g.,qs,minimist,ini,body-parser), Axios will automatically pick up the polluted properties during its config merge.Because Axios does not sanitise these merged header values for CRLF (
\r\n) characters, the polluted property becomes a Request Smuggling payload.Proof of Concept
1. The Setup (Simulated Pollution)
Imagine a scenario where a known vulnerability exists in a query parser. The attacker sends a payload that sets:
2. The Gadget Trigger (Safe Code)
The application makes a completely safe, hardcoded request:
3. The Execution
Axios merges the prototype property
x-amz-targetinto the request headers. It then writes the header value directly to the socket without validation.Resulting HTTP traffic:
4. The Impact (IMDSv2 Bypass)
The "Smuggled" second request is a valid
PUTrequest to the AWS Metadata Service. It includes the requiredX-aws-ec2-metadata-token-ttl-secondsheader (which a normal SSRF cannot send).The Metadata Service returns a session token, allowing the attacker to steal IAM credentials and compromise the cloud account.
Impact Analysis
Cookie,Authorization) to pivot into internal administrative panels.Hostheaders to poison shared caches.Recommended Fix
Validate all header values in
lib/adapters/http.jsandxhr.jsbefore passing them to the underlying request function.Patch Suggestion:
References
This report was generated as part of a security audit of the Axios library.</alert_description>
critical
https://github.com/axios/axios/security/advisories/GHSA-fvcv-3m26-pcqx https://github.com/axios/axios/commit/363185461b90b1b78845dc8a99a1f103d9b122a1 https://github.com/axios/axios/releases/tag/v1.15.0 https://nvd.nist.gov/vuln/detail/CVE-2026-40175 https://github.com/axios/axios/pull/10660 https://github.com/axios/axios/pull/10660#issuecomment-4224168081 https://github.com/axios/axios/pull/10688 https://github.com/axios/axios/commit/03cdfc99e8db32a390e12128208b6778492cee9c https://github.com/axios/axios/releases/tag/v0.31.0 https://github.com/advisories/GHSA-fvcv-3m26-pcqxGHSA-fvcv-3m26-pcqx, CVE-2026-40175
axios
npm
<vulnerable_versions>1.4.0</vulnerable_versions>
<patched_version>1.15.0</patched_version>
<manifest_path>package-lock.json</manifest_path>
<task_instructions>Resolve this alert by updating the affected package to a non-vulnerable version. Prefer the lowest non-vulnerable version (see the patched_version field above) over the latest to minimize breaking changes. Include a Reachability Assessment section in the PR description. Review the alert_description field to understand which APIs, fea...