Apa yang terjadi
Cycode mendokumentasikan cacat pada SDK Python MCP resmi (1.9.1–1.29.1 dan 2.0.0–2.1.1, CVSS 7.5 untuk penyedia mesin-ke-mesin): selama penemuan OAuth, server MCP jahat dapat mengembalikan 404, memaksa SDK ke jalur fallback lama di mana ia mempercayai konfigurasi OAuth server tanpa memvalidasi issuer yang dideklarasikan. SDK mengirim kode otorisasi, client secret, dan verifier PKCE ke endpoint token yang dikendalikan penyerang, mengalahkan PKCE dan menghasilkan token yang valid untuk akun agen AI. Diperbaiki pada 1.30.0 dan 2.2.0, yang memvalidasi issuer server otorisasi.
Mengapa penting
Klien MCP berbasis HTTP yang menggunakan OAuth (Google, Okta, Entra ID) dapat ditipu untuk menyerahkan kredensial berumur panjang ke server nakal. Ini sangat berbahaya bagi agen yang secara otonom memilih server MCP, di mana entri registry yang dibajak, typosquat, pembajakan DNS, atau pilihan yang dipengaruhi injeksi prompt dapat mengalihkan klien. Versi yang ditambal memerlukan penerusan issuer= secara eksplisit untuk ClientCredentialsOAuthProvider/PrivateKeyJWTOAuthProvider; peningkatan saja tidak cukup.
Vektor serangan
Server MCP jahat/disusupi mendorong klien ke fallback penemuan OAuth lama, lalu menerima kode otorisasi, client secret, dan verifier PKCE
Sistem yang terdampak
SDK Python MCP resmi 1.9.1–1.29.1 dan 2.0.0–2.1.1 (klien MCP berbasis HTTP yang menggunakan OAuth)
Mitigasi
Tingkatkan ke SDK Python MCP 1.30.0 (1.x) atau 2.2.0 (2.x), tetapkan parameter issuer= yang diharapkan, rotasi client secret yang terekspos dan cabut token untuk aplikasi mana pun yang terhubung ke server tidak tepercaya