CVE-2026-27896
Case-Insensitive JSON Parsing Flaw in Go MCP SDK Allows Protocol Bypass
Publication date: 2026-02-26
Last updated on: 2026-04-14
Assigner: GitHub, Inc.
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| lfprojects | mcp_go_sdk | to 1.3.1 (exc) |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-436 | Product A handles inputs or steps differently than Product B, which causes A to perform incorrect actions based on its perception of B's state. |
| CWE-178 | The product does not properly account for differences in case sensitivity when accessing or determining the properties of a resource, leading to inconsistent results. |
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?
[{'type': 'paragraph', 'content': 'CVE-2026-27896 is a vulnerability in the Go MCP SDK versions prior to 1.3.1 related to how JSON messages are parsed. The SDK used Go\'s standard JSON unmarshaling, which matches JSON keys to struct fields in a case-insensitive way. This means that fields like "method" could also match "Method" or "METHOD", violating the JSON-RPC 2.0 specification that requires exact case-sensitive matching.'}, {'type': 'paragraph', 'content': 'Because of this, a malicious MCP peer could send protocol messages with non-standard casing that the SDK would accept silently, potentially bypassing intermediary inspection or causing inconsistencies between different implementations that enforce case sensitivity.'}, {'type': 'paragraph', 'content': 'The issue was fixed by replacing the standard JSON unmarshaler with a case-sensitive decoder from the external package github.com/segmentio/encoding, enforcing exact case matching of JSON keys.'}] [1, 2]
How can this vulnerability impact me? :
This vulnerability can allow a malicious MCP peer to send protocol messages with incorrectly cased JSON fields that the vulnerable SDK would accept, potentially bypassing security controls such as intermediary inspection or policy enforcement layers that rely on exact field name matching.
Such bypasses could lead to unauthorized or malformed messages passing undetected, causing security boundary confusion and inconsistent behavior across different MCP SDK implementations.
The vulnerability has a high severity rating with a CVSS v4 base score of 7.0 and can be exploited remotely without any privileges or user interaction.
How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:
I don't know
How can this vulnerability be detected on my network or system? Can you suggest some commands?
I don't know
What immediate steps should I take to mitigate this vulnerability?
To mitigate this vulnerability, users should update the Go MCP SDK to version 1.3.1 or later.
The update replaces the standard Go JSON unmarshaling with a case-sensitive decoder, ensuring that JSON keys must exactly match the struct field tags or names in a case-sensitive manner.
This prevents acceptance of protocol messages with non-standard field casing that could bypass intermediary inspection or cause cross-implementation inconsistencies.