Apa yang terjadi
Server GitLab MCP mempercayai header HTTP yang dapat dikontrol penyerang untuk mengarahkan ulang panggilan API keluar (membocorkan Private-Token pemanggil ke host apa pun pilihan penyerang) dan secara terpisah tidak memiliki validasi Host/Origin pada transportnya HTTP Streamable, memungkinkan serangan DNS-rebinding dari halaman web berbahaya terhadap instans yang berjalan secara lokal.
Mengapa penting
Token akses GitLab yang diperoleh dengan cara ini memberikan penyerang akses API GitLab penuh pada tingkat izin korban — kode sumber, rahasia CI/CD, dan kontrol repositori — menjadikan ini primitif pencurian kredensial terhadap organisasi apa pun yang menggunakan konektor MCP komunitas yang luas ini untuk membiarkan agen berinteraksi dengan GitLab.
Vektor serangan
Ketika ENABLE_DYNAMIC_API_URL=true, server membaca header X-GitLab-API-URL yang dapat dikontrol pemanggil dan menggunakannya sebagai URL dasar untuk panggilan API GitLab keluar, memvalidasi hanya bahwa itu adalah URL yang valid secara sintaksis tanpa daftar allowlist host — dan melampirkan Private-Token korban ke permintaan yang dikirim ke host yang dikontrol penyerang, secara langsung membocorkan token GitLab. Secara terpisah, endpoint HTTP MCP Streamable tidak memiliki daftar allowlist Host/Origin yang efektif, membiarkan halaman web berbahaya menjangkau pendengar MCP lokal korban melalui DNS rebinding sambil mempertahankan kepercayaan same-origin yang jelas.
Sistem yang terdampak
@zereight/mcp-gitlab, versi 0.0.1 hingga 2.1.26 (CVE-2026-61559, diperbaiki 2.1.27); versi sebelum 2.1.30 (CVE-2026-61568, DNS rebinding, diperbaiki 2.1.30)
Mitigasi
Tingkatkan ke @zereight/mcp-gitlab 2.1.30 atau lebih baru, yang memperbaiki SSRF berbasis header dan celah DNS-rebinding. Nonaktifkan ENABLE_DYNAMIC_API_URL kecuali jika benar-benar diperlukan, dan batasi Host/Origin di proxy terbalik di depan server GitLab MCP mode HTTP apa pun.