Skip to content

fix(deps): update module github.com/modelcontextprotocol/go-sdk to v1.3.1 [security]#48

Open
renovate[bot] wants to merge 1 commit intomainfrom
renovate/go-github.com-modelcontextprotocol-go-sdk-vulnerability
Open

fix(deps): update module github.com/modelcontextprotocol/go-sdk to v1.3.1 [security]#48
renovate[bot] wants to merge 1 commit intomainfrom
renovate/go-github.com-modelcontextprotocol-go-sdk-vulnerability

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Feb 28, 2026

This PR contains the following updates:

Package Change Age Confidence
github.com/modelcontextprotocol/go-sdk v1.1.0v1.3.1 age confidence

GitHub Vulnerability Alerts

CVE-2026-27896

The Go MCP SDK used Go's standard encoding/json.Unmarshal for JSON-RPC and MCP protocol message parsing. Go's standard library performs case-insensitive matching of JSON keys to struct field tags — a field tagged json:"method" would also match "Method", "METHOD", etc. Additionally, Go's standard library folds the Unicode characters ſ (U+017F) and K (U+212A) to their ASCII equivalents s and k, meaning fields like "paramſ" would match "params". This violated the JSON-RPC 2.0 specification, which defines exact field names.

Impact:

A malicious MCP peer may have been able to send protocol messages with non-standard field casing (e.g., "Method" instead of "method") that the SDK would silently accept. This had the potential for:

  • Bypassing intermediary inspection: Proxies or policy layers that matched on exact field names may have failed to detect or filter these messages.
  • Cross-implementation inconsistency: Other MCP SDKs (TypeScript, Python) use case-sensitive parsing and would reject the same messages, creating potential security-boundary confusion.

Fix:

Go's standard JSON unmarshaling was replaced with a case-sensitive decoder (github.com/segmentio/encoding) in commit 7b8d81c. Users are advised to update to v1.3.1 to resolve this issue.

Credits:

MCP Go SDK thanks Francesco Lacerenza (Doyensec) for reporting this issue.


Release Notes

modelcontextprotocol/go-sdk (github.com/modelcontextprotocol/go-sdk)

v1.3.1

Compare Source

This release is a patch release for v1.3.0.

It contains a cherry-pick for a security issue reported in #​805, which takes advantage of the default behavior of Go's standard library JSON decoder that allows case-insensitive matches to struct field names (or "json" tags). The issue has been addressed by changing the JSON decoder to one that supports case sensitive matching.

Fixes

New external dependencies

Full Changelog: modelcontextprotocol/go-sdk@v1.3.0...v1.3.1

v1.3.0

Compare Source

This release is equivalent to v1.3.0-pre.1. Thank you to those who tested the pre-release.

This release includes several enhancements and bugfixes. Worth mentioning is the addition of schema caching, which significantly improves the performance in some stateless server deployment scenarios.

Dependency updates

Enhancements

Bugfixes

Chores

New Contributors

Full Changelog: modelcontextprotocol/go-sdk@v1.2.0...v1.3.0

v1.2.0

Compare Source

This release is equivalent to v1.2.0-pre.2. Thank you to those who tested the prerelease.

This release adds partial support for the 2025-11-25 version of the MCP spec and fixes some bugs in the streamable transports. It also includes some minor new APIs, changes to contributing flows, and small bugfixes.

Contributing changes

  • CONTRIBUTING.md is updated to remove the ad-hoc antitrust policy (#​651), and add a dependency update policy (#​635).
  • An example server (examples/server/conformance) is added for the new conformance tests at modelcontextprotocol/conformance. Test can be run with scripts/conformance.sh (#​650).

Partial support for the 2025-11-25 spec

The following SEPs from the 2025-11-25 spec are now supported. Please see #​725 for the proposed API additions included to support these SEPs.

  • SEP-973: icons and metadata (#​570)
  • SEP-986: tool name validation (#​640)
  • SEP-1024: elicitation defaults (#​644)
  • SEP-1036: URL mode elicitation (#​646)
  • SEP-1699: SSE polling (#​663)
  • SEP-1330: elicitation enum improvements (#​676)

Other API additions

  • Common error codes are now available through the sentinel jsonrpc.Error (#​452)
  • OAuth 2.0 Protected Resource Metadata support (#​643)
  • ClientCapabilities.RootsV2 and RootCapabilities are added to work around an API bug (#​607)
  • Capabilities fields are added to ServerOptions and ClientOptions, to simplify capability configuration (#​706)

Streamable fixes

Several bug fixes are included for the streamable transports:

Other notable bugfixes

New Contributors

Full Changelog: modelcontextprotocol/go-sdk@v1.1.0...v1.2.0


Configuration

📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
Copy link
Contributor Author

renovate bot commented Feb 28, 2026

ℹ️ Artifact update notice

File name: go.mod

In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):

  • 1 additional dependency was updated

Details:

Package Change
github.com/google/jsonschema-go v0.3.0 -> v0.4.2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants