CVE-2026-27896
Published: 26 February 2026
Summary
CVE-2026-27896 is a high-severity Improper Handling of Case Sensitivity (CWE-178) vulnerability in Lfprojects Mcp Go Sdk. Its CVSS base score is 7.5 (High).
Operationally, exploitation aligns with the MITRE ATT&CK technique Exploit Public-Facing Application (T1190); ranked at the 14.0th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog.
This vulnerability is AI-related — categorised as AI Agent Protocols and Integrations; in the Protocol-Specific Risks risk domain.
Threat & Defense at a Glance
Threat & Defense Details
MITRE ATT&CK Enterprise TechniquesAI
Why these techniques?
Vulnerability enables unauthenticated remote exploitation of a network-exposed JSON-RPC/MCP service via crafted case-variant messages, directly mapping to exploitation of public-facing applications; case-insensitivity also facilitates evasion of strict protocol inspectors but does not match additional techniques with sufficient specificity.
NVD Description
The Go MCP SDK used Go's standard encoding/json.Unmarshal for JSON-RPC and MCP protocol message parsing in versions prior to 1.3.1. Go's standard library performs case-insensitive matching of JSON keys to struct field tags — a field tagged json:"method" would also…
more
match "Method", "METHOD", etc. This violated the JSON-RPC 2.0 specification, which defines exact field names. A malicious MCP peer may have been able to send protocol messages with non-standard field casing that the SDK would silently accept. This had the potential for bypassing intermediary inspection and coss-implementation inconsistency. Go's standard JSON unmarshaling was replaced with a case-sensitive decoder in commit 7b8d81c. Users are advised to update to v1.3.1 to resolve this issue.
Deeper analysisAI
CVE-2026-27896 is a vulnerability in the Go MCP SDK versions prior to 1.3.1, stemming from the use of Go's standard encoding/json.Unmarshal for parsing JSON-RPC and MCP protocol messages. This library performs case-insensitive matching of JSON keys to struct field tags, meaning a field tagged "json:\"method\"" would accept "Method", "METHOD", or similar variations. This violates the JSON-RPC 2.0 specification, which mandates exact field names, and is associated with CWE-178 (Improper Handling of Case Sensitivity) and CWE-436 (Interpretation Conflict).
A malicious MCP peer can exploit this over the network by sending protocol messages with non-standard field casing, which the SDK silently accepts. Attackers require no privileges or user interaction (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N, score 7.5), potentially bypassing intermediary inspection tools expecting strict JSON-RPC compliance and causing cross-implementation inconsistencies.
The vulnerability is fixed in SDK version 1.3.1 by replacing Go's standard JSON unmarshaling with a case-sensitive decoder, as detailed in commit 7b8d81c264074404abdf5aa16e2cf0c2d9c64cc0. Users should update to v1.3.1, with additional guidance in the GitHub security advisory at GHSA-wvj2-96wp-fq3f.
Details
- CWE(s)
Affected Products
AI Security AnalysisAI
- AI Category
- AI Agent Protocols and Integrations
- Risk Domain
- Protocol-Specific Risks
- OWASP Top 10 for LLMs 2025
- None mapped
- Classification Reason
- Matched keywords: mcp, mcp, mcp