{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "mcp-go: JSON-RPC member-name case/Unicode folding lets calls bypass exact-match proxy allowlists (through v1.5.0, unpatched) · updates",
  "home_page_url": "https://pwn.watch/i/mcp-go-jsonrpc-case-folding-proxy-bypass-go-2026-6911",
  "feed_url": "https://pwn.watch/i/mcp-go-jsonrpc-case-folding-proxy-bypass-go-2026-6911/feed.json",
  "description": "mark3labs/mcp-go's MCPServer.HandleMessage decodes JSON-RPC with encoding/json, which matches member names case-insensitively, folds ſ (U+017F) to s and K (U+212A) to k, and keeps the last of duplicate members. A request with Method/METHOD/paramſ, or with method given twice, still runs as the named call. mcp-go does not authorize calls itself, so this matters when a gateway or proxy in front allowlists method / params.name with an exact-match parser: the proxy may not see the call the server executes. The official Model Context Protocol Go SDK had the same class of bug (CVE-2026-27896 / GHSA-wvj2-96wp-fq3f) and fixed it in 1.3.1. Reported privately to contact@mark3labs.com on 2026-08-16 with no reply, then disclosed. Affected through v1.5.0 (tested on v1.0.0-beta.1, v1.4.0 and main after v1.5.0); no fix released. Workarounds: reject messages whose member names are not exactly the defined ones or that repeat a member, or re-encode before forwarding.",
  "language": "en",
  "_pwn": {
    "slug": "mcp-go-jsonrpc-case-folding-proxy-bypass-go-2026-6911",
    "severity": "high",
    "status": "live",
    "patchStatus": "unpatched",
    "rss": "https://pwn.watch/i/mcp-go-jsonrpc-case-folding-proxy-bypass-go-2026-6911/feed.xml",
    "llms": "https://pwn.watch/i/mcp-go-jsonrpc-case-folding-proxy-bypass-go-2026-6911/llms.txt",
    "json": "https://pwn.watch/i/mcp-go-jsonrpc-case-folding-proxy-bypass-go-2026-6911.json"
  },
  "items": [
    {
      "id": "https://pwn.watch/i/mcp-go-jsonrpc-case-folding-proxy-bypass-go-2026-6911#2026-11-04-45f88efd",
      "url": "https://pwn.watch/i/mcp-go-jsonrpc-case-folding-proxy-bypass-go-2026-6911#2026-11-04-45f88efd",
      "title": "mcp-go: JSON-RPC member-name case/Unicode folding lets calls bypass exact-match proxy allowlists (through v1.5.0, unpatched): golang/vulndb#6911 opened describing the mcp-go JSON-RPC case/Unicode-folding proxy-allowlist bypass; fixed in: not fixed.",
      "content_text": "mcp-go: JSON-RPC member-name case/Unicode folding lets calls bypass exact-match proxy allowlists (through v1.5.0, unpatched): golang/vulndb#6911 opened describing the mcp-go JSON-RPC case/Unicode-folding proxy-allowlist bypass; fixed in: not fixed.\n\nSource: https://github.com/golang/vulndb/issues/6911",
      "date_published": "2026-11-04T00:00:00.000Z",
      "external_url": "https://github.com/golang/vulndb/issues/6911",
      "tags": [
        "high"
      ]
    },
    {
      "id": "https://pwn.watch/i/mcp-go-jsonrpc-case-folding-proxy-bypass-go-2026-6911#2026-11-04-9a3facf7",
      "url": "https://pwn.watch/i/mcp-go-jsonrpc-case-folding-proxy-bypass-go-2026-6911#2026-11-04-9a3facf7",
      "title": "mcp-go: JSON-RPC member-name case/Unicode folding lets calls bypass exact-match proxy allowlists (through v1.5.0, unpatched): Public disclosure filed as mark3labs/mcp-go#1164 after private report and follow-up went unanswered.",
      "content_text": "mcp-go: JSON-RPC member-name case/Unicode folding lets calls bypass exact-match proxy allowlists (through v1.5.0, unpatched): Public disclosure filed as mark3labs/mcp-go#1164 after private report and follow-up went unanswered.\n\nSource: https://github.com/mark3labs/mcp-go/issues/1164",
      "date_published": "2026-11-04T00:00:00.000Z",
      "external_url": "https://github.com/mark3labs/mcp-go/issues/1164",
      "tags": [
        "high"
      ]
    },
    {
      "id": "https://pwn.watch/i/mcp-go-jsonrpc-case-folding-proxy-bypass-go-2026-6911#2026-08-16-d3173d20",
      "url": "https://pwn.watch/i/mcp-go-jsonrpc-case-folding-proxy-bypass-go-2026-6911#2026-08-16-d3173d20",
      "title": "mcp-go: JSON-RPC member-name case/Unicode folding lets calls bypass exact-match proxy allowlists (through v1.5.0, unpatched): Issue reported privately to contact@mark3labs.com; no reply (per public disclosure).",
      "content_text": "mcp-go: JSON-RPC member-name case/Unicode folding lets calls bypass exact-match proxy allowlists (through v1.5.0, unpatched): Issue reported privately to contact@mark3labs.com; no reply (per public disclosure).\n\nSource: https://github.com/mark3labs/mcp-go/issues/1164",
      "date_published": "2026-08-16T00:00:00.000Z",
      "external_url": "https://github.com/mark3labs/mcp-go/issues/1164",
      "tags": [
        "high"
      ]
    }
  ]
}
