CVE-2026-27896: Model Context Protocol Go SDK improper case sensitivity in JSON-RPC parsing

CVE-2026-27896 · Severity: high · CVSS 7.5 · Published 2026-02-26

The Model Context Protocol (MCP) Go SDK, used for building integrations between AI models and tools, contained a flaw in how it processed incoming messages. Because it used a standard Go library that ignores letter casing in data fields, it would accept messages that technically violate the protocol's rules. This could allow a malicious actor to bypass security filters or inspection tools that expect strictly formatted data, potentially leading to unauthorized actions or inconsistent security enforcement across different systems.

Technologies: github.com/modelcontextprotocol/go-sdk (Go). Vendors: Go, Lfprojects.

Quick answers

Is CVE-2026-27896 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-27896 being exploited in the wild.
How severe is CVE-2026-27896?
High severity, with a CVSS score of 7.5, published 26 February 2026.
Which products and versions are affected?
github.com/modelcontextprotocol/go-sdk (Go) SEMVER:introduced=0,fixed=1.3.1.
Is there a fix for CVE-2026-27896?
Yes. github.com/modelcontextprotocol/go-sdk (Go): upgrade to 1.3.1 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-27896 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-27896?
Check whether you run github.com/modelcontextprotocol/go-sdk (Go) or Lfprojects Mcp Go Sdk at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • github.com/modelcontextprotocol/go-sdk (Go): upgrade to 1.3.1 or later
    go get github.com/modelcontextprotocol/go-sdk@v1.3.1

Technical details

The Go MCP SDK utilized the standard 'encoding/json.Unmarshal' library, which performs case-insensitive matching of JSON keys to struct field tags. This behavior violates the JSON-RPC 2.0 specification requiring exact field names and includes unexpected Unicode folding (e.g., matching 'paramſ' to 'params'). A remote attacker can send protocol messages with non-standard field casing to bypass intermediary inspection layers (like proxies or WAFs) that enforce exact-match policies. This also creates cross-implementation inconsistencies with TypeScript and Python SDKs which are case-sensitive. The issue was resolved in version 1.3.1 by migrating to a case-sensitive decoder.

Affected products

  • modelcontextprotocol go-sdk < 1.3.1

Identifiers

  • CVE-2026-27896
  • GHSA-wvj2-96wp-fq3f
  • GO-2026-4569

Timeline

  • 2026-02-18: patched: Case-sensitive decoder introduced in commit 7b8d81c
  • 2026-02-25: advisory: GHSA-wvj2-96wp-fq3f published
  • 2026-02-26: disclosed: CVE-2026-27896 published

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.