Apa yang terjadi
Autentikasi bearer sisi server SDK TypeScript MCP tidak menerapkan audience token OAuth, sehingga token valid yang dicetak untuk layanan lain diterima. Dalam deployment multi-layanan, penyerang yang memegang token untuk satu layanan dapat mengautentikasi ke server MCP sebagai pemanggil yang berwenang.
Mengapa penting
Server MCP sering di-deploy dalam ekosistem OAuth bersama di mana satu server otorisasi menerbitkan token di beberapa layanan; pemeriksaan audience yang hilang memungkinkan token yang dimaksudkan untuk layanan lain membuka alat MCP, jalur bypass autentikasi ke permukaan alat agen.
Vektor serangan
Autentikasi bearer HTTP sisi server menerima token akses valid yang diterbitkan untuk layanan lain karena SDK tidak menerapkan audience token. Pemanggil yang memegang token untuk layanan lain dapat mengautentikasi ke server MCP dan mendapatkan kemampuan kerahasiaan dan integritas yang diberikan kepada pemanggil yang terautentikasi.
Sistem yang terdampak
@modelcontextprotocol/sdk >= 1.6.0, < 1.32.0; @modelcontextprotocol/server >= 2.0.0, < 2.3.0; @modelcontextprotocol/express >= 2.0.0, < 2.0.2; @modelcontextprotocol/server-legacy >= 2.0.0, < 2.3.1
Mitigasi
Tingkatkan ke @modelcontextprotocol/sdk 1.32.0 / server 2.3.0 / express 2.0.2 / server-legacy 2.3.1, lalu aktifkan validasi audience dan berikan audience token yang diharapkan (peningkatan saja membuat validasi baru tetap nonaktif). Advisory: https://github.com/modelcontextprotocol/typescript-sdk/security/advisories/GHSA-rvq5-wwqv-78pq