Apa yang terjadi
Transport klien HTTP dan fungsi klien OAuth SDK TypeScript MCP mengikuti redirect lintas-origin sambil mempertahankan header kustom dan (untuk 307/308) body permintaan. Server MCP atau otorisasi yang jahat atau dikompromikan karena itu dapat menerima OAuth refresh token, client secret, API key, dan pengenal sesi.
Mengapa penting
Klien MCP menyimpan kredensial yang memungkinkan agen bertindak; satu redirect lintas-origin pada transport dapat mengeksfiltrasi OAuth refresh token atau client secret yang mengautentikasi agen ke layanan hilir, memungkinkan pencurian kredensial dari integrasi agen yang sebelumnya tepercaya.
Vektor serangan
Transport klien HTTP dan permintaan klien OAuth mengikuti redirect ke origin yang berbeda sambil mempertahankan header permintaan kustom dan, untuk HTTP 307/308, body permintaan. Header kustom (termasuk mcp-session-id) dan body permintaan OAuth yang berisi refresh_token dan client_secret dapat dikirim ulang ke origin yang dialihkan.
Sistem yang terdampak
@modelcontextprotocol/sdk < 1.32.0; @modelcontextprotocol/client >= 2.0.0, < 2.3.0
Mitigasi
Tingkatkan ke @modelcontextprotocol/sdk 1.32.0 / @modelcontextprotocol/client 2.3.0. Advisory: https://github.com/modelcontextprotocol/typescript-sdk/security/advisories/GHSA-6prh-2h8m-c8cw