Intelligence
AEV-2026-0033

MCPHub's IPv6 destination guard misses NAT64, 6to4 and Teredo transition addresses (CVE-2026-79749)

MCPHub's isBlockedIpv6 correctly rejects loopback, link local, unique local and IPv4 embedded IPv6 addresses, the forms its own test suite exercises, but never checked three standardized IPv6 transition address families, NAT64, 6to4 and Teredo, each capable of carrying an otherwise blocked IPv4 address past the guard unrecognized. GHSA-pr4x-3pc7-2fhw formally assigns CVE-2026-79749 on 23 August 2026; remediation commit d382b36, merged in pull request 1069 as a56b4a17e25e2ebf09323a10882e1f83e445b2a8, is confirmed present on MCPHub's current default branch and shipped in MCPHub 1.0.32.

AESS 7.7 highConfirmedStatus: publishedEvent: 23 August 2026Environment BoundariesExecution Authority

Affected

Organisation
samanhappy (MCPHub)
Product
MCPHub
Component
isBlockedIpv6 in src/utils/ssrf.ts, called from assertSafeUrl on every outbound MCP server and OpenAPI connection
Versions
Through version 1.0.31, confirmed at commit dd5c7d7a109fbe4b91aaeb3a77b3cc863c5aa3d0; patched in 1.0.32
Configurations
A caller already authorized to register or configure a URL based MCP server or OpenAPI connection.; A network reachable from the MCPHub deployment where the named IPv6 transition mechanism, NAT64, 6to4 or Teredo, is enabled or otherwise routes the embedded IPv4 address.

Execution authority facts

Fields the evidence does not establish are shown as unknown rather than guessed.

Intended task
A caller registers or configures an MCP server or OpenAPI connection naming a destination URL
Agent
MCPHub's own server process, through assertSafeUrl and the isBlockedIp and isBlockedIpv6 checks it calls before dialing
Delegating actor
The MCPHub operator who admits authenticated callers to configure URL based server connections at all
Action
Evaluated a caller named destination's IPv6 representation against isBlockedIpv6's fixed set of numeric ranges, which did not include the NAT64, 6to4 or Teredo transition prefixes, and proceeded to dial it
Target resource
Any private IPv4 address, including cloud metadata endpoints such as 169.254.169.254, expressible inside the NAT64 well known prefix 64:ff9b::/96, the 6to4 prefix 2002::/16, or the Teredo prefix 2001:0::/32
Environment
Wherever the operator deploys the MCPHub server process
Credentials used
None of MCPHub's own beyond the caller's existing authorization to configure a server connection
Privileges available
The MCPHub server process's own network reachability from its deployment location
Authority presented
A caller supplied destination URL encoded as one of three IPv6 transition address forms
Authority required
Authorization for the specific effective destination the encoded address resolves to, independent of which representation named it
Applicable policy
isBlockedIpv6, already correctly enforced against loopback, link local, unique local and IPv4 embedded IPv6 forms; not extended to the three transition families before the fix
Approval mechanism
none
Required approver
unknown
Independent approval
no
Action binding
The destination check bound to the address forms isBlockedIpv6's own author tested and wrote ranges for; it was never independently confirmed to cover every standardized encoding capable of producing the same effective address
Sequence context
The check runs inside assertSafeUrl, evaluated before MCPHub dials a caller named or resolved destination

Impact

Consequence
MCPHub's own outbound connection directed at a caller named destination the guard was built to exclude, reaching internal infrastructure the advisory names as including cloud metadata endpoints on a network where the relevant transition mechanism is enabled
Reach
organisational
Reversibility
unknown
Detectability
unknown
Propagation
potential
Recovery
Patched in MCPHub 1.0.32, published 23 August 2026. Remediation commit d382b36, merged as a56b4a17e25e2ebf09323a10882e1f83e445b2a8 in pull request 1069, adds checks for the NAT64 well known prefix, the NAT64 local use prefix, 6to4, Teredo, site local addressing and multicast. This record confirmed the fix is present on MCPHub's current default branch.

Evidence

Primary sources

Supporting sources

Reproduction status
This session did not itself run MCPHub or dial a live transition encoded address. This session read the affected function directly at the commit immediately before the fix and at the fix commit, independently confirming the exact ranges present at each and the exact three the advisory names as the vulnerability's own scope, against two further ranges the same commit hardens without the advisory attributing them to this CVE.
Evidence state
Confirmed

Known unknowns

  • Whether this has been exploited against a real MCPHub deployment.
  • A numeric CVSS score or vector for CVE-2026-79749; the advisory states only a High severity label.
  • Whether the CVE Program's own record states a publication date later than the repository advisory page's own 23 August 2026 date; cve.org, nvd.nist.gov and osv.dev were each blocked to direct fetch in this session.
  • Which commit fixes the separately tracked CVE-2026-79747, GHSA-9wx9-prgc-gmjr, published the same day against the same product with a distinct authorization mechanism this entry does not merge with CVE-2026-79749.

Limitations

  • This session's direct fetch of the CVE Program's own record at cve.org, of nvd.nist.gov and of osv.dev was blocked by this session's network egress policy; CVE metadata is corroborated through the repository's own GitHub Security Advisory page rather than read directly from the Program's own record.
  • This session cloned and read the affected repository's source directly rather than relying on the advisory's prose alone, but did not execute MCPHub itself or dial a live address through any of the three transition encodings.

Claim provenance