Skip to content

fix(security): Fix security issue in axios via minor version upgrade from 1.15.0 to 1.18.0 - #85

Closed
aikido-autofix[bot] wants to merge 1 commit into
mainfrom
fix/aikido-security-update-packages-76265905-7jez
Closed

aikido-autofix[bot] wants to merge 1 commit into
mainfrom
fix/aikido-security-update-packages-76265905-7jez

Conversation

@aikido-autofix

@aikido-autofix aikido-autofix Bot commented Jul 29, 2026 •

Copy link
Copy Markdown

Upgrade axios to fix critical MITM, prototype pollution, credential leakage, and header injection vulnerabilities affecting HTTP requests and authentication.

✅ Code not affected by breaking changes.

✅ No breaking changes from the axios upgrade (1.15.0 => 1.18.0) affect this codebase. The codebase uses axios with default configuration and all URLs are properly formatted with the // separator after the protocol. None of the affected features (maxBodyLength, maxContentLength, basic auth in URLs, parseProtocol, unescape(), validateStatus, or transitional options) are used in this codebase.

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

Version Description
1.16.0
Fetch adapter now enforces maxBodyLength and maxContentLength limits that were previously silently ignored, potentially blocking requests that previously succeeded.
1.16.0
Basic auth credentials embedded in URLs are now URL-decoded before being sent, changing the actual credentials transmitted on the wire for percent-encoded values.
1.16.0
parseProtocol now strictly requires a colon in the protocol separator, causing strings that loosely parsed as protocols before to no longer match.
1.16.0
Deprecated unescape() replaced with modern UTF-8 encoding, potentially changing output bytes for non-ASCII URL handling for consumers depending on legacy unescape() quirks.
1.18.0
Malformed http: and https: URLs that omit // are now rejected with ERR_INVALID_URL, causing previously accepted malformed URLs to fail.
1.18.0
Added transitional.validateStatusUndefinedResolves option changes the semantics of validateStatus: undefined vs validateStatus: null, requiring opt-in to treat undefined like the option was omitted.
✅ 13 CVEs resolved by this upgrade

This PR will resolve the following CVEs:

Issue Severity           Description
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.
AIKIDO-2026-10741
HIGH
[axios] An HTTP client vulnerability allows prototype pollution through loose object merging, sensitive data exposure via error serialization, and improper proxy/socket handling that could lead to information disclosure or unauthorized access.
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-291630
HIGH
[axios] Cross-origin redirects leak custom credential headers like X-API-Key and AWS tokens to unintended hosts, allowing attackers to steal sensitive authentication data. This information disclosure vulnerability affects shared environments where secret headers are set by default.
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.
GHSA-f4gw-2p7v-4548
MEDIUM
[axios] Axios does not treat 0.0.0.0 as a local address when evaluating NO_PROXY rules, allowing requests to 0.0.0.0 to be routed through configured proxies instead of bypassing them. This enables SSRF attacks when attackers control request URLs and the proxy can reach local services.
GHSA-7q8q-rj6j-mhjq
MEDIUM
[axios] Prototype pollution in nested request options allows inherited Object.prototype properties to inject malicious Authorization headers and manipulate query strings when applications pass placeholder objects like auth: {} or paramsSerializer: {}. This enables credential exfiltration and request tampering when another component has already polluted the prototype chain.
GHSA-jqh4-m9w3-8hp9
MEDIUM
[axios] The fetch adapter fails to enforce maxBodyLength limits on WHATWG ReadableStream request bodies with unknown sizes, allowing attackers to bypass upload size restrictions and cause unexpected network egress or resource exhaustion.
GHSA-mmx7-hfxf-jppx
MEDIUM
[axios] Prototype pollution read-side gadgets in axios allow attackers who pollute Object.prototype to hijack requests by injecting malicious data, proxy settings, or parameter serializers into bodyless methods and low-level adapter calls. This can result in credential theft, request body injection, traffic redirection, or URL manipulation depending on the attack vector.
GHSA-pmv8-rq9r-6j72
MEDIUM
[axios] Uncontrolled recursion in formDataToJSON allows attackers to crash the process by submitting FormData with deeply nested bracket-delimited field names, causing stack exhaustion and denial of service.
AIKIDO-2026-38469
MEDIUM
[axios] Malformed HTTP/HTTPS URLs without // (e.g., https:internal.example) were silently normalized instead of rejected, allowing attackers to bypass URL allowlists or WAF checks and reach unintended hosts. The fix now throws an error for invalid scheme URLs before normalization.
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-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.

@aikido-autofix aikido-autofix Bot added the Aikido Label created by Aikido AutoFix label Jul 29, 2026
@aikido-autofix

Copy link
Copy Markdown
Author

Closed by Aikido: a new AutoFix has been created → #86

@aikido-autofix aikido-autofix Bot closed this Aug 11, 2026
@aikido-autofix
aikido-autofix Bot deleted the fix/aikido-security-update-packages-76265905-7jez branch August 11, 2026 03:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Aikido Label created by Aikido AutoFix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants