GHSA-Q382-VC8Q-7JHJ: JSON Key Collusion via Null Byte Injection in Model Context Protocol Go SDK
Vulnerability ID: GHSA-Q382-VC8Q-7JHJ
CVSS Score: 8.2
Published: 2026-03-19
The Model Context Protocol (MCP) Go SDK, via its dependency on segmentio/encoding, is vulnerable to JSON Key Collusion. The JSON parser improperly handles null Unicode characters during struct field mapping, allowing attackers to smuggle overriding keys past security filters and manipulate backend application logic.
TL;DR
A high-severity parsing flaw in segmentio/encoding enables JSON key collusion via null byte injection. Attackers can bypass WAFs and overwrite critical struct fields in the MCP Go SDK by appending \u0000 to JSON keys.
⚠️ Exploit Status: POC
Technical Details
- CWE ID: CWE-20
- Attack Vector: Network
- CVSS Score: 8.2
- Impact: Integrity Violation / Privilege Escalation
- Exploit Status: Proof of Concept Available
- CISA KEV: Not Listed
Affected Systems
- github.com/modelcontextprotocol/go-sdk < v0.5.4
- github.com/segmentio/encoding < v0.5.4
- Go applications deserializing untrusted JSON via segmentio/encoding
-
github.com/modelcontextprotocol/go-sdk: < v0.5.4 (Fixed in:
v0.5.4) -
github.com/segmentio/encoding: < v0.5.4 (Fixed in:
v0.5.4)
Code Analysis
Commit: 724dd47
Fix commit for modelcontextprotocol/go-sdk bumping encoding dependency
Commit: 7d5a25d
Fix commit for segmentio/encoding adding length validation
Exploit Details
- Fix Commit Test Suite: Functional PoC located in internal/json/json_test.go demonstrating null character injection
Mitigation Strategies
- Update github.com/modelcontextprotocol/go-sdk to v0.5.4
- Update github.com/segmentio/encoding to v0.5.4
- Configure WAFs to reject JSON payloads containing \u0000 or duplicate keys
- Implement strict JSON schema validation at the API gateway level
Remediation Steps:
- Identify all internal Go projects importing github.com/modelcontextprotocol/go-sdk or github.com/segmentio/encoding.
- Execute
go get github.com/modelcontextprotocol/go-sdk@v0.5.4andgo get github.com/segmentio/encoding@v0.5.4in the project root. - Run
go mod tidyto update module definitions. - Recompile the binaries and execute integration tests to verify parser stability.
- Deploy the updated binaries to production environments.
References
- GitHub Advisory: GHSA-Q382-VC8Q-7JHJ
- OSV.dev Record for GHSA-Q382-VC8Q-7JHJ
- Vulnerability Lookup Reference
Read the full report for GHSA-Q382-VC8Q-7JHJ on our website for more details including interactive diagrams and full exploit analysis.
Top comments (0)