webchat: override axios to 0.32.0 to remediate GHSA-pjwm-pj3p-43mv#4464
Draft
Copilot wants to merge 2 commits into
Draft
webchat: override axios to 0.32.0 to remediate GHSA-pjwm-pj3p-43mv#4464Copilot wants to merge 2 commits into
Copilot wants to merge 2 commits into
Conversation
Co-authored-by: stephenhand <1694716+stephenhand@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Fix axios's shouldBypassProxy to handle IPv4-mapped IPv6 addresses
webchat: override axios to 0.32.0 to remediate GHSA-pjwm-pj3p-43mv
Jun 8, 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.
Description
Dependabot flagged
axios@0.21.4inwebchat/package-lock.jsonas vulnerable to NO_PROXY bypass via IPv4-mapped IPv6 handling (GHSA-pjwm-pj3p-43mv / CVE-2026-44492). This PR moves the resolved axios version to the minimum patched release (0.32.0) with the smallest possible dependency change.Dependency remediation
webchat/package.jsonto forceaxiosto0.32.0.webchat/package-lock.jsonvia npm so the transitive axios resolution is no longer0.21.4.Lockfile outcome
node_modules/axiosnow resolves to0.32.0inwebchat/package-lock.json.0.21.4lockfile resolution is removed.Reachability assessment
NO_PROXY/HTTP_PROXY) in Node proxy flows.webchat, axios is transitive (via@twilio/flex-webchat-ui), and no directNO_PROXY/HTTP_PROXYhandling was found in this package’s runtime source.webchatapplication code; update primarily eliminates vulnerable dependency resolution and scanner exposure.{ "overrides": { "axios": "0.32.0" } }Checklist
Other Related Issues
None
Verification steps
/webchat, run dependency resolution and inspect lockfile:npm installwebchat/package-lock.jsoncontainsnode_modules/axiosat0.32.0npm ls axios@twilio/flex-webchat-uiresolves to overriddenaxios@0.32.0AFTER YOU MERGE
You are responsible for ensuring the above steps are completed. If you move a ticket into QA without advising what version to test, the QA team will assume the latest tag has the changes. If it does not, the following confusion is on you! :-P
Original prompt
This section details the Dependabot vulnerability alert you should resolve
<alert_title>axios's shouldBypassProxy does not recognize IPv4-mapped IPv6 addresses, allowing NO_PROXY bypass (incomplete fix for CVE-2025-62718)</alert_title>
<alert_description>### Summary
shouldBypassProxy, introduced in v1.15.0 to fix CVE-2025-62718, does not normalise IPv4-mapped IPv6 addresses. When NO_PROXY lists an IPv4 address such as
127.0.0.1or169.254.169.254, a request URL using the IPv4-mapped IPv6 form (::ffff:7f00:1,::ffff:a9fe:a9fe) still routes through the configured proxy. Node.js resolves these addresses to the underlying IPv4 host, so the request reaches the internal service via the proxy rather than being blocked.Details
lib/helpers/shouldBypassProxy.js (v1.15.0):
The WHATWG URL parser canonicalises
http://[::ffff:127.0.0.1]/to hostname[::ffff:7f00:1]. After bracket-stripping:::ffff:7f00:1. This string does not match 127.0.0.1 in NO_PROXY and is not in LOOPBACK_ADDRESSES, so shouldBypassProxy returns false and the proxy is used. proxy-from-env (called before shouldBypassProxy) has the same gap - it does not equate ::ffff:7f00:1 with 127.0.0.1 - so neither layer catches the bypass.PoC
Node.js routes ::ffff:7f00:1 to 127.0.0.1: