MCP TypeScript SDK: HTTPサーバーのトランスポートとハンドラにおいて、リクエストボディのサイズやJSON-RPCバッチの長さに制限がありませんでした。
### 概要
影響を受けるバージョンでは、HTTP経由でアクセス可能なMCPサーバーにおいて、POSTリクエストのボディサイズやJSON-RPCバッチに含まれるメッセージ数に制限がありませんでした。 大きなリクエストはサーバーのメモリを枯渇させ、長いバッチは他のクライアントへのサービス提供を妨げる可能性がありました。 認証情報は不要ですが、アプリケーションがSDKに到達する前にリクエストを認証する場合は、認証情報が必要になる場合があります。
### 影響はありますか?
はい、信頼できないクライアントがStreamable HTTP経由でサーバーにアクセスできる場合、影響を受ける可能性があります。 `express.json()`のようなボディパーサーは、バッチの長さに制限がないため、保護にはなりません。 stdioのみを使用するサーバーは影響を受けません。
影響を受けるバージョン:
- `@modelcontextprotocol/sdk` 1.10.0から1.30.0
- `@modelcontextprotocol/server` 2.0.0
- `@modelcontextprotocol/node` 2.0.0
- `@modelcontextprotocol/hono` 2.0.0
### 修正方法
以下のバージョンにアップグレードしてください。
- 1.x: `@modelcontextprotocol/sdk` 1.30.1以降
- 2.x: `@modelcontextprotocol/server` 2.1.0、`@modelcontextprotocol/node` 2.1.0、および`@modelcontextprotocol/hono` 2.0.1以降。 インストールされているすべてのパッケージをアップグレードしてください。
4MiBを超えるボディは`413`エラーを返し、100メッセージを超えるバッチは`400`エラーを返します。 クライアントがより大きなボディを送信する場合は、新しい`maxRequestBodySize`オプションの値を大きくしてください。
アップグレードできない場合は、リバースプロキシでリクエストボディのサイズを制限してください。
影響を受けるパッケージ:
- npm (JavaScript) @modelcontextprotocol/sdk: 影響を受けるバージョンは1.10.0以上、1.30.1未満。 1.30.1で修正されました。
- npm (JavaScript) @modelcontextprotocol/server: 影響を受けるバージョンは2.0.0以上、2.1.0未満。 2.1.0で修正されました。
- npm (JavaScript) @modelcontextprotocol/node: 影響を受けるバージョンは2.0.0以上、2.1.0未満。 2.1.0で修正されました。
- npm (JavaScript) @modelcontextprotocol/hono: 影響を受けるバージョンは2.0.0以上、2.0.1未満。 2.0.1で修正されました。