Skip to content

[Aikido] Fix critical issue in axios via minor version upgrade from 1.7.9 to 1.18.0 - #32

Open
aikido-autofix[bot] wants to merge 1 commit into
mainfrom
fix/aikido-security-update-packages-42839464-b1g3
Open

[Aikido] Fix critical issue in axios via minor version upgrade from 1.7.9 to 1.18.0#32
aikido-autofix[bot] wants to merge 1 commit into
mainfrom
fix/aikido-security-update-packages-42839464-b1g3

Conversation

@aikido-autofix

@aikido-autofix aikido-autofix Bot commented Jun 1, 2026

Copy link
Copy Markdown

Upgrade axios to fix critical SSRF/proxy bypass vulnerabilities (CVE-2025-62718, CVE-2026-42043) and prototype pollution gadget attacks enabling response manipulation and authorization bypass (CVE-2026-42264, CVE-2026-42044).

✅ Code not affected by breaking changes.

✅ No breaking changes affect this codebase.

While axios is present as a transitive dependency (used internally by @switchboard-xyz/on-demand and @solana/kit), the codebase does not directly import or use axios. The breaking change regarding the allowAbsoluteUrls configuration option only affects code that directly configures axios instances or makes requests with absolute URLs. Since this codebase has no direct axios usage, the breaking change has no impact.

All breaking changes by upgrading axios from version 1.7.9 to 1.18.0 (CHANGELOG)

Version Description
1.8.0
Code relying on absolute URL handling will now combine the URLs instead of preferring the request URL due to the new allowAbsoluteUrls config option
1.15.0
Headers containing \r or \n characters are now rejected and throw "Invalid character in header content" to block CRLF injection
1.16.0
Fetch adapter now enforces maxBodyLength and maxContentLength limits which were previously silently ignored
1.16.0
parseProtocol now strictly requires a colon in the protocol separator; strings that loosely parsed as protocols before may no longer match
1.18.0
Malformed http: and https: URLs that omit // are now rejected with ERR_INVALID_URL
✅ 28 CVEs resolved by this upgrade, including 4 critical 🚨 CVEs

This PR will resolve the following CVEs:

Issue Severity           Description
CVE-2025-27152
MEDIUM
[axios] Axios sends requests to absolute URLs even when baseURL is configured, bypassing intended routing and potentially causing Server-Side Request Forgery (SSRF) and credential leakage in both server and client environments.
CVE-2025-58754
HIGH
[axios] A vulnerability allows attackers to supply large data: scheme URLs that bypass memory limits, causing unbounded memory allocation and process crashes (DoS) on Node.js. The issue affects versions 0.28.0 through 0.30.1 and 1.x before 1.12.0.
AIKIDO-2025-10185
MEDIUM
[axios] A server-side request forgery (SSRF) vulnerability exists due to allowAbsoluteUrls not being set to false by default in buildFullPath(), allowing attackers to bypass URL restrictions and process unintended URLs.
CVE-2026-25639
HIGH
[axios] The mergeConfig function crashes with a TypeError when processing configuration objects containing proto as an own property, allowing attackers to trigger denial of service. An attacker can exploit this by providing a malicious configuration object created via JSON.parse().
CVE-2025-62718
🚨 CRITICAL
[axios] Improper hostname normalization in NO_PROXY rule checking allows requests to loopback addresses (localhost., [::1]) to bypass proxy protections, enabling proxy bypass and potential SSRF attacks against internal services. This vulnerability permits attackers to reach sensitive services despite configured NO_PROXY protections.
CVE-2026-40175
HIGH
[axios] A prototype pollution vulnerability in a third-party dependency can be exploited to inject unsanitized header values into outbound HTTP requests. This allows attackers to manipulate request headers, potentially leading to request smuggling, cache poisoning, or other header-based attacks.
AIKIDO-2026-10509
HIGH
[axios] Prototype pollution vulnerability allows attackers to inject malicious headers into requests through unsafe FormData detection and header merging, potentially enabling authorization bypass or request manipulation.
CVE-2026-42033
HIGH
[axios] A prototype pollution vulnerability allows attackers to intercept and modify JSON responses or hijack HTTP transport to access credentials and headers. This requires prior prototype pollution from a co-dependency but enables complete request/response manipulation.
CVE-2026-42035
HIGH
[axios] A prototype pollution gadget in the HTTP adapter allows attackers to inject arbitrary HTTP headers into outgoing requests by polluting Object.prototype with specific properties. This enables header injection attacks that could lead to request manipulation and potential security bypasses.
CVE-2026-42043
🚨 CRITICAL
[axios] An attacker who can influence the target URL can bypass NO_PROXY protection by using any address in the 127.0.0.0/8 range (except 127.0.0.1), allowing requests to reach unintended destinations. This enables potential information disclosure or unauthorized access to local services.
CVE-2026-42264
🚨 CRITICAL
[axios] Prototype pollution vulnerability in HTTP adapter allows attackers to exploit five config properties (auth, baseURL, socketPath, beforeRedirect, insecureHTTPParser) without hasOwnProperty guards, enabling RCE or request manipulation when Object.prototype is polluted by other dependencies.
CVE-2026-42034
MEDIUM
[axios] A vulnerability allows attackers to bypass the maxBodyLength restriction on stream request bodies when maxRedirects is set to 0, enabling oversized uploads to be sent despite strict body limits. This could lead to denial of service or resource exhaustion attacks.
CVE-2026-42036
MEDIUM
[axios] When responseType is set to 'stream', the library fails to enforce maxContentLength limits, allowing attackers to bypass response-size restrictions and cause denial of service through unbounded data consumption.
CVE-2026-42037
MEDIUM
[axios] Unsanitized CRLF sequences in the Content-Type header of multipart form-data parts allow header injection attacks when processing user-controlled Blob/File objects. An attacker can inject arbitrary MIME headers into the multipart body, bypassing Node.js v18+ header protections.
CVE-2026-42038
HIGH
[axios] Incomplete hostname normalization in no_proxy bypass allows requests to IP loopback addresses (127.0.0.1, [::1]) to route through proxy when no_proxy=localhost is set, enabling proxy bypass circumvention. This occurs due to pure string matching without IP alias resolution.
CVE-2026-42039
HIGH
[axios] A deeply nested object passed as request data causes the toFormData function to recursively walk without depth limits, crashing the Node.js process with a RangeError (Denial of Service). This vulnerability allows attackers to trigger application crashes through maliciously crafted nested payloads.
CVE-2026-42041
MEDIUM
[axios] A Prototype Pollution vulnerability allows attackers to suppress HTTP error responses by polluting Object.prototype.validateStatus, causing all status codes to be treated as successful and bypassing authentication and error handling.
CVE-2026-42042
MEDIUM
[axios] Uses truthy/falsy semantics instead of strict boolean comparison for XSRF token protection, allowing attackers to bypass same-origin checks via prototype pollution or misconfiguration and steal XSRF tokens sent to cross-origin servers. This enables CSRF attacks against protected endpoints.
CVE-2026-42044
🚨 CRITICAL
[axios] Prototype Pollution vulnerability allows attackers to manipulate JSON API responses through a polluted parseReviver function, enabling privilege escalation, balance manipulation, and authorization bypass. The default transformResponse function unsafely calls JSON.parse with an unvalidated parseReviver parameter from the config object.
CVE-2026-42040
LOW
[axios] A character mapping in the encode() function incorrectly reverses percent-encoding of null bytes, converting %00 back to raw null bytes and potentially enabling injection attacks in certain contexts. The vulnerability has limited impact as standard axios request flows are unaffected.
AIKIDO-2026-10820
MEDIUM
[axios] Request size limits were not enforced in the fetch adapter, allowing responses and bodies to exceed configured limits, potentially causing denial of service or memory exhaustion. The vulnerability has been fixed to properly reject oversized responses and bodies.
AIKIDO-2026-10819
LOW
[axios] A regular expression vulnerability in browser cookie parsing allowed metacharacters in cookie names to cause incorrect matching or excessive CPU consumption. The vulnerability was fixed by switching to literal string comparison instead of regex-based matching.
AIKIDO-2026-10823
HIGH
[axios] HTTP adapter incorrectly routes HTTPS traffic through HTTP proxies in cleartext instead of using CONNECT tunnels, allowing proxies to observe sensitive request metadata and payloads that should be encrypted.
AIKIDO-2026-10822
LOW
[axios] A prototype pollution vulnerability in the formDataToJSON helper allows attackers to pollute Object.prototype through specially crafted multipart field names, potentially enabling remote code execution or other malicious actions.
CVE-2026-44492
HIGH
[axios] Axios fails to normalize IPv4-mapped IPv6 addresses when checking NO_PROXY rules, allowing requests to bypass proxy restrictions and reach internal services. This enables attackers to access services that should be blocked, such as metadata endpoints.
CVE-2026-44494
HIGH
[axios] Prototype pollution vulnerability allows escalation to Man-in-the-Middle attacks by injecting a malicious proxy into the prototype chain, enabling interception and modification of all HTTP traffic including authentication credentials. An attacker can read and alter all application HTTP communications through a compromised dependency.
CVE-2026-44495
HIGH
[axios] Contains prototype-pollution gadgets in request config processing that could be exploited if Object.prototype is already polluted by another vulnerability, potentially allowing arbitrary code execution or request manipulation. Requires a separate prototype-pollution vulnerability or prior attacker control over Object.prototype to be exploitable.
CVE-2026-44490
HIGH
[axios] Axios contains prototype pollution gadgets that allow upstream dependencies to inject malicious values into HTTP headers or cause synchronous TypeErrors on every request. This enables information disclosure or denial of service attacks when Object.prototype is polluted by other libraries.
🤖 Remediation details

Fix transitive axios vulnerability (CVE-2025-27152 and related advisories)

Short summary

This PR remediates a chain of security vulnerabilities in the transitive dependency axios, which was resolved at 1.7.9 in yarn.lock via two parent packages (@switchboard-xyz/common and @switchboard-xyz/on-demand). No package.json manifest changes were required; the fix is a lockfile-only refresh that advances the resolved version of axios to 1.18.0, satisfying all patched-version requirements across the full advisory set.

axios

axios appeared only as a transitive dependency, pulled in by @switchboard-xyz/common@2.5.7 and @switchboard-xyz/on-demand@1.2.54, both of which declare axios: npm:^1.7.8. Because the caret range ^1.7.8 already permits any 1.x ≥ 1.7.8, no parent bump or manifest edit was needed — the lockfile entry was simply stale. Running yarn up -R axios --mode=update-lockfile refreshed the single lockfile entry from 1.7.9 to 1.18.0, which exceeds the highest minimum patched version required across all advisories (1.16.1), fully remediating the entire advisory set without touching package.json or adding any resolutions override.

Version changes

Package From To Why updated
axios 1.7.9 1.18.0 Lockfile refresh — transitive via @switchboard-xyz/common and @switchboard-xyz/on-demand; direct CVE fix

@aikido-autofix aikido-autofix Bot changed the title [Aikido] Fix security issue in axios via minor version upgrade from 1.7.9 to 1.16.1 [Aikido] Fix critical issue in axios via minor version upgrade from 1.7.9 to 1.18.0 Jun 27, 2026
@aikido-autofix
aikido-autofix Bot force-pushed the fix/aikido-security-update-packages-42839464-b1g3 branch from 0ac90cb to 7a81280 Compare June 27, 2026 00:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants