Skip to content
Heist/ feed
Back to feed
High

MCPHub: SSRF Guard Bypass via IPv6 Transition Addresses in URL Validation

Type: advisorySources: OSV

MCPHub is a unified hub for centrally managing and dynamically orchestrating multiple MCP servers/APIs into separate endpoints with flexible routing strategies. Prior to version 1.0.32, MCPHub's SSRF guard in src/utils/ssrf.ts uses a custom isBlockedIpv6 function that only checks for loopback, link-local, unique-local, IPv4-mapped, and IPv4-compatible IPv6 addresses. IPv6 transition address families -- NAT64 (64:ff9b::/96), 6to4 (2002::/16), and Teredo (2001::/32) -- are not checked. An attacker who can specify a URL for an MCP server connection can encode a private IPv4 address inside one of these IPv6 forms to bypass the SSRF guard and reach internal infrastructure. This issue has been patched in version 1.0.32.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-79749
Confirmed fixed CVEs
Not specified
Updated in this feed
7 Nov 2026, 20:36 UTC · Revision 1

Source evidence

MCPHub: SSRF Guard Bypass via IPv6 Transition Addresses in URL Validation

core-osv · Original source

Published 31 Aug 2026, 17:54 UTC

MCPHub is a unified hub for centrally managing and dynamically orchestrating multiple MCP servers/APIs into separate endpoints with flexible routing strategies. Prior to version 1.0.32, MCPHub's SSRF guard in src/utils/ssrf.ts uses a custom isBlockedIpv6 function that only checks for loopback, link-local, unique-local, IPv4-mapped, and IPv4-compatible IPv6 addresses. IPv6 transition address families -- NAT64 (64:ff9b::/96), 6to4 (2002::/16), and Teredo (2001::/32) -- are not checked. An attacker who can specify a URL for an MCP server connection can encode a private IPv4 address inside one of these IPv6 forms to bypass the SSRF guard and reach internal infrastructure. This issue has been patched in version 1.0.32.

osv:CVE-2026-79749
Complete source record
{
  "id": "f413dd4d5a6874c41a57ba676e1fac9478232a06b148a73ef3b60c85456420cf",
  "url": "https://osv.dev/vulnerability/CVE-2026-79749",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "MCPHub: SSRF Guard Bypass via IPv6 Transition Addresses in URL Validation",
    "summary": "MCPHub is a unified hub for centrally managing and dynamically orchestrating multiple MCP servers/APIs into separate endpoints with flexible routing strategies. Prior to version 1.0.32, MCPHub's SSRF guard in src/utils/ssrf.ts uses a custom isBlockedIpv6 function that only checks for loopback, link-local, unique-local, IPv4-mapped, and IPv4-compatible IPv6 addresses. IPv6 transition address families -- NAT64 (64:ff9b::/96), 6to4 (2002::/16), and Teredo (2001::/32) -- are not checked. An attacker who can specify a URL for an MCP server connection can encode a private IPv4 address inside one of these IPv6 forms to bypass the SSRF guard and reach internal infrastructure. This issue has been patched in version 1.0.32.",
    "evidence": "osv:CVE-2026-79749",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-79749",
      "aliases": [
        "CVE-2026-79749",
        "GHSA-pr4x-3pc7-2fhw"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/samanhappy/mcphub",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "20e3ba73aea03c493669f90526436a9a576f9c6c"
                },
                {
                  "fixed": "2b10ae36112ce68deebf910b22505d44efcef552"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "1.0.32"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "fixed": "2b10ae36112ce68deebf910b22505d44efcef552"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "20e3ba73aea03c493669f90526436a9a576f9c6c"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "v1.0.32"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v1.0.30",
            "v1.0.29",
            "v1.0.28",
            "v1.0.27",
            "v1.0.26",
            "v1.0.25",
            "v1.0.24",
            "v1.0.23",
            "v1.0.22",
            "v1.0.21",
            "v1.0.20",
            "v1.0.19",
            "v1.0.18",
            "v1.0.17",
            "v1.0.16",
            "v1.0.15",
            "v1.0.14",
            "v1.0.13",
            "v1.0.12",
            "v1.0.11",
            "v1.0.10",
            "v1.0.9",
            "v1.0.8",
            "v1.0.7",
            "v1.0.6",
            "v1.0.5",
            "v1.0.4",
            "v1.0.3",
            "v1.0.2",
            "v1.0.1",
            "v1.0.0",
            "v0.12.17",
            "v0.12.16",
            "v0.12.15",
            "v0.12.14",
            "v0.12.13",
            "v0.12.12",
            "v0.12.11",
            "v0.12.10",
            "v0.12.9",
            "v0.12.8",
            "v0.12.7",
            "v0.12.6",
            "v0.12.5",
            "v0.12.4",
            "v0.12.3",
            "v0.12.2",
            "v0.12.1",
            "v0.12.0",
            "v0.11.13",
            "v0.11.12",
            "v0.11.11",
            "v0.11.10",
            "v0.11.9",
            "v0.11.8",
            "v0.11.7",
            "v0.11.6",
            "v0.11.5",
            "v0.11.4",
            "v0.11.3",
            "v0.11.2",
            "v0.11.1",
            "v0.11.0",
            "v0.10.6",
            "v0.10.5",
            "v0.10.4",
            "v0.10.3",
            "v0.10.2",
            "v0.10.1",
            "v0.10.0",
            "v0.9.16",
            "v0.9.15",
            "v0.9.14",
            "v0.9.13",
            "v0.9.12",
            "v0.9.11",
            "v0.9.10",
            "v0.9.9",
            "v0.9.8",
            "v0.9.7",
            "v0.9.6",
            "v0.9.5",
            "v0.9.4",
            "v0.9.3",
            "v0.9.2",
            "v0.9.1",
            "v0.9.0",
            "v0.8.7",
            "v0.8.6",
            "v0.8.5",
            "v0.8.4",
            "v0.8.3",
            "v0.8.2",
            "v0.8.1",
            "v0.8.0",
            "v0.7.7",
            "v0.7.6",
            "v0.7.5",
            "v0.7.4",
            "v0.7.3",
            "v0.7.2",
            "v0.7.1",
            "v0.7.0",
            "v0.6.2",
            "v0.6.1",
            "v0.6.0",
            "v0.5.4",
            "v0.5.3",
            "v0.5.2",
            "v0.5.1",
            "v0.5.0",
            "v0.4.3",
            "v0.4.2",
            "v0.4.1",
            "v0.4.0",
            "v0.3.8",
            "v0.3.7",
            "v0.3.6",
            "v0.3.5",
            "v0.3.4",
            "v0.3.3",
            "v0.3.2",
            "v0.3.1",
            "v0.3.0",
            "v0.2.0",
            "v0.1.1",
            "v0.1.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-79749.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:51.505782075Z",
      "provider": "osv",
      "references": [
        "https://github.com/samanhappy/mcphub/releases/tag/v1.0.32",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/79xxx/CVE-2026-79749.json",
        "https://github.com/samanhappy/mcphub/security/advisories/GHSA-pr4x-3pc7-2fhw",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-79749",
        "https://github.com/samanhappy/mcphub/commit/2b10ae36112ce68deebf910b22505d44efcef552",
        "https://github.com/samanhappy/mcphub/pull/1069"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-918"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/79xxx/CVE-2026-79749.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-79749",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 520333,
  "published_at": "2026-08-31T17:54:45.423+00:00"
}