{"id":"GO-2026-6911","aliases":[],"status":"published","title":"SSRF and credential leak via unvalidated Location header in github.com/mark3labs/mcp-go","description":"In github.com/mark3labs/mcp-go/client/transport, NewStreamableHTTP constructs an http.Client with a nil CheckRedirect policy when no custom WithHTTPBasicClient is supplied, and attaches static custom headers and OAuth bearer tokens inside a RoundTripper layer. If an MCP server responds with a 3xx redirect, the client follows the Location header to arbitrary hosts and schemes and attaches configured WithHeaders and OAuth Authorization headers to the redirected request, enabling server-side request forgery (SSRF) and credential disclosure.","facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"published":"2026-11-05T22:55:15Z","modified":"2026-11-05T23:15:16Z","affected":[{"source":"osv","ecosystem":"Go","package":"github.com/mark3labs/mcp-go","ranges":[{"type":"SEMVER","events":[{"introduced":"0"}]}]}],"references":[{"url":"https://github.com/golang/vulndb/issues/6911","tags":["report"]},{"url":"https://github.com/mark3labs/mcp-go/issues/1164","tags":["report"]}],"sources":{"osv":[{"id":"GO-2026-6911","title":"SSRF and credential leak via unvalidated Location header in github.com/mark3labs/mcp-go","description":"In github.com/mark3labs/mcp-go/client/transport, NewStreamableHTTP constructs an http.Client with a nil CheckRedirect policy when no custom WithHTTPBasicClient is supplied, and attaches static custom headers and OAuth bearer tokens inside a RoundTripper layer. If an MCP server responds with a 3xx redirect, the client follows the Location header to arbitrary hosts and schemes and attaches configured WithHeaders and OAuth Authorization headers to the redirected request, enabling server-side request forgery (SSRF) and credential disclosure.","status":"published","published":"2026-11-05T22:55:15Z","modified":"2026-11-05T23:15:16.971949313Z","updated_at":"2026-11-06T00:02:13.631839Z"}]}}
