Go MCP SDK использовал стандартную кодировку Go/json.Unmarshal для анализа сообщений протокола JSON-RPC и MCP в версиях до 1.3.1. Стандартная библиотека Go выполняет сопоставление ключей JSON с тегами структурных полей без учета регистра — поле с тегом json: «method» также будет соответствовать «Method», «METHOD» и т. д. Это нарушает спецификацию JSON-RPC 2.0, которая определяет точные имена полей.
Злонамеренный партнер MCP мог отправлять протокольные сообщения с нестандартным регистром полей, которые SDK принимал бы молча. Это имело потенциал для обхода промежуточной проверки и несогласованности реализации cos. Стандартная демаршалинг JSON Go была заменена декодером, чувствительным к регистру, в коммите 7b8d81c.
Пользователям рекомендуется обновиться до версии 1.3.1, чтобы решить эту проблему.
Показать оригинальное описание (EN)
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 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.
Характеристики атаки
Последствия
Строка CVSS v4.0