Apa yang terjadi
Sandbox eksekusi kode Python Context Forge untuk panggilan alat MCP dapat dielakkan melalui nama atribut dunder yang dibangun pada runtime dan builtin getattr yang terpapar, memungkinkan eksekusi kode sewenang-wenang daripada subset terbatas yang dimaksudkan sandbox untuk diterapkan.
Mengapa penting
MCP Context Forge diposisikan sebagai gateway/registry/proxy AI terpusat untuk MCP, A2A, dan API REST/gRPC; sandbox escape dalam alat eksekusi kodenya mengubah apa yang diyakini operator sebagai kemampuan 'jalankan beberapa Python' yang aman dan terbatas untuk agen menjadi eksekusi kode jarak jauh yang tidak terautentikasi pada gateway itu sendiri, dengan PoC publik sudah tersedia.
Vektor serangan
Sandbox mengekspos getattr mentah melalui safe_builtins (memotong akses atribut yang dimediasi), dan validasi kode hanya memeriksa string dunder berbahaya literal sambil mengizinkan konstruksi pada runtime. Dikombinasikan dengan alat execute_code MCP yang dapat dicapai melalui transport HTTP/SSE yang tidak terautentikasi, penyerang dapat mengirimkan Python yang secara dinamis merekonstruksi nama yang diblokir (misalnya untuk mencapai subprocess/Popen) dan mengeksekusi perintah OS sewenang-wenang dengan privilege proses server. Bukti konsep yang berfungsi telah dipublikasikan.
Sistem yang terdampak
Subproyek python_sandbox_server IBM/mcp-context-forge, sebelum 1.0.2/1.0.3
Mitigasi
Upgrade mcp-context-forge / python_sandbox_server ke rilis yang di-patch (1.0.2 atau lebih baru per commit perbaikan yang dirujuk); memerlukan autentikasi pada alat MCP execute_code dan membatasi jangkauan jaringan server sandbox terlepas dari status patch.