Apa yang terjadi
mac-shell-mcp sebelum 2.0.0 mengandung injeksi perintah OS di execute_command: daftar putih perintah hanya memeriksa perintah telanjang, sementara argumen diteruskan ke shell. Penyerang (secara langsung, atau prompt berbahaya yang mengarahkan agen) dapat memanggil perintah aman seperti pwd dengan pemisah ';' dan menjalankan perintah terlarang sebagai pengguna server tanpa langkah persetujuan.
Mengapa penting
Server MCP yang mengeksekusi shell adalah permukaan alat agen yang paling berbahaya — mereka menjembatani model langsung ke OS. Bypass daftar putih di sini berarti injeksi prompt di file proyek, halaman web, atau email apa pun yang dibaca agen berubah menjadi eksekusi perintah arbitrer di mesin macOS pengembang.
Vektor serangan
Klien MCP memanggil perintah yang diizinkan (mis. pwd) dengan argumen yang mengandung karakter meta shell (';'), sehingga pemeriksaan daftar putih pada nama perintah tidak menghentikan perintah akhir yang disuntikkan dari dieksekusi sebagai pengguna server tanpa persetujuan.
Sistem yang terdampak
mac-shell-mcp (cfdude) < 2.0.0 (argumen execute_command)
Mitigasi
Tingkatkan ke mac-shell-mcp 2.0.0 (commit 932ce733cde07bb30b1f186303e6692dbb5d087a; issue #45). Pastikan argumen perintah dieksekusi tanpa shell atau divalidasi terhadap daftar putih.