[GHSA-3p68-rc4w-qgx5] Axios has a NO_PROXY Hostname Normalization Bypass Leads to SSRF#7379
Open
Wenxin-Jiang wants to merge 1 commit intoWenxin-Jiang/advisory-improvement-7379from
Open
Conversation
Collaborator
|
Hi there @jasonsaayman! A community member has suggested an improvement to your security advisory. If approved, this change will affect the global advisory listed at github.com/advisories. It will not affect the version listed in your project repository. This change will be reviewed by our Security Curation Team. If you have thoughts or feedback, please share them in a comment here! If this PR has already been closed, you can start a new community contribution for this advisory |
jasonsaayman
approved these changes
Apr 14, 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.
Updates
Comments
The advisory currently marks axios as affected for
< 1.15.0, with1.15.0listed as patched. That correctly captures the fixed boundary for the1.xline, but it does not account for the0.xbackport:v0.31.0is currently included in the affected range even though it contains the same NO_PROXY fix.v0.31.0includes the NO_PROXY fix via the same backport that carried the CRLF fixOn the
1.xline, the NO_PROXY fix shipped inv1.15.0via commitfb3befb6daac6cad26b2e54094d0f2d9e47f24df(PR #10661,"fix: no_proxy hostname normalization bypass leads to ssrf"). That change introduceslib/helpers/shouldBypassProxy.js, which adds logic to:normalizeNoProxyHost(hostname), which strips a trailing.and removes[]brackets from IPv6 literals before comparison.isLoopbackHost(hostname), which treatslocalhost,::1, and IPv4 loopback addresses (127.0.0.0/8) as equivalent for NO_PROXY matching.That same logic was backported to the
0.xline in commit03cdfc99e8db32a390e12128208b6778492cee9c(PR #10688,"fix: backport the fixes from the v1 branch"). This is the same backport commit that also carried the CRLF header injection fix tracked underGHSA-fvcv-3m26-pcqx; PR #10688 includes both fixes together.Specifically:
lib/helpers/shouldBypassProxy.jsis added in03cdfc99and first appears inv0.31.0; it is not present inv0.30.x.v0.31.0implementation contains the samenormalizeNoProxyHostandisLoopbackHostlogic as the1.xversion, adapted to CommonJS but functionally equivalent.lib/adapters/http.jsis updated in the same backport commit to use the new helper.As a result, consumers on
v0.31.0are not affected by this NO_PROXY bypass. The advisory should therefore represent the0.xline separately, with< 0.31.0listed as affected and0.31.0listed as patched.Proposed changes
Add a separate affected range for
0.x:< 0.31.00.31.0This reflects the backport in commit
03cdfc99e8db32a390e12128208b6778492cee9c(PR #10688), which shipped inv0.31.0and addedlib/helpers/shouldBypassProxy.jswith the same hostname-normalization and loopback-handling behavior as the1.xfix.Keep the existing
1.xrange:< 1.15.01.15.0Add supporting references:
fb3befb6daac6cad26b2e54094d0f2d9e47f24df(PR #10661)03cdfc99e8db32a390e12128208b6778492cee9c(PR #10688)v1.15.0release tagWithout the separate
0.xrange,v0.31.0is incorrectly flagged as affected despite already containing the backported fix.