Apa yang terjadi
Versi Server MCP resmi GitHub 0.22.0 hingga 1.1.1 mengandung cacat otorisasi lintas penyewa ketika berjalan dalam mode HTTP dengan --lockdown-mode. RepoAccessCache adalah singleton proses-global yang diinisialisasi dengan kredensial pengguna pertama. Pengguna berikutnya berbagi cache dan klien GraphQL yang sama, memotong kontrol akses repositori dan berpotensi mengizinkan akses tidak sah ke repositori privat.
Mengapa penting
Server MCP resmi GitHub adalah jembatan utama antara agen pengodean AI dan repositori GitHub. Akses lintas penyewa dalam server MCP berarti agen AI yang beroperasi atas nama satu pengguna dapat secara tidak sengaja atau jahat mengakses repositori privat yang dimiliki pengguna lain, mengekspos kode sumber, rahasia yang disimpan di repo, dan data pelatihan AI proprietary atau konfigurasi model.
Vektor serangan
Ketika berjalan dalam mode HTTP dengan --lockdown-mode, RepoAccessCache diinisialisasi sebagai singleton proses-global menggunakan klien GraphQL pengguna pertama yang terautentikasi. Semua permintaan berikutnya dari pengguna berbeda menggunakan ulang klien yang sama ini, berarti pengguna apa pun dapat mengakses repositori yang diotorisasi hanya untuk pengguna pertama yang terautentikasi — bypass otorisasi lintas penyewa.
Sistem yang terdampak
github-mcp-server 0.22.0 – 1.1.1 (diperbaiki di 1.1.2)
Mitigasi
Tingkatkan ke github-mcp-server 1.1.2. Advisory: https://github.com/github/github-mcp-server/security/advisories/GHSA-pjp5-fpmr-3349