Apa yang terjadi
Sandbox Generative UI Prefab UI didokumentasikan sebagai isolasi untuk Python yang tidak tepercaya dan disediakan oleh pemanggil — termasuk UI yang dihasilkan LLM — yang menjalankan Python di dalam Pyodide (CPython dalam WebAssembly) dalam subproses Deno. Dari prefab-ui 0.14.0 hingga 0.20.2, peluncur memulai Deno dengan --allow-read/--allow-write/--allow-net tanpa batasan dan membiarkan API Deno pada objek global JavaScript; karena modul js Pyodide memproksikan global tersebut, Python dapat memanggil Deno.readTextFileSync/writeTextFileSync dan melakukan panggilan jaringan. Pemanggil yang dapat menyediakan kode dapat membaca/menulis file sebagai pengguna OS server dan mempertahankan eksekusi dengan menulis file .pth ke site-packages virtualenv server. Jalur remote yang umum adalah penyedia GenerativeUI FastMCP, yang mendaftarkan alat MCP generate_prefab_ui dan meneruskan argumen kode alat tersebut ke sandbox ini. Diperbaiki di 0.21.0 dengan mencabut izin baca/tulis/jaringan Deno sebelum menerima kode, memulai dengan --no-prompt, dan membatasi akses jaringan bootstrap ke cdn.jsdelivr.net. Dikonfirmasi pada 0.20.2.
Mengapa penting
Sandbox Pyodide/Deno adalah batas isolasi yang didokumentasikan untuk kode UI yang tidak tepercaya dan dihasilkan LLM. Melarikan diri dari sandbox ini mengubah alat pembuatan UI agen menjadi primitif eksekusi kode jarak jauh: pada server FastMCP tanpa autentikasi, klien mana pun yang dapat menjangkau server dapat memanggil generate_prefab_ui dan membaca/menulis file sebagai pengguna server serta membangun eksekusi kode persisten. Ini adalah kelas serangan eksekusi agen baru (sandbox escape kode yang dihasilkan LLM) dengan eksploitasi yang berfungsi dan peringkat CVSS 10.0.
Vektor serangan
Klien MCP memanggil alat generate_prefab_ui dari penyedia GenerativeUI FastMCP dengan Python yang dikendalikan penyerang; kode berjalan di dalam subproses Pyodide-in-Deno yang dimulai dengan izin sistem file/jaringan tanpa batasan dan global Deno yang diproksikan, sehingga Python dapat mengakses API file dan jaringan Deno, menulis file sebagai pengguna OS server, dan mempertahankan eksekusi melalui file .pth di site-packages.
Sistem yang terdampak
prefab-ui 0.14.0 hingga 0.20.2 (diperbaiki di 0.21.0)
Mitigasi
Tingkatkan ke prefab-ui 0.21.0 (commit perbaikan 030f074 / PR 538), yang mencabut izin baca/tulis/jaringan Deno sebelum menerima kode, memulai dengan --no-prompt, dan membatasi akses jaringan bootstrap ke cdn.jsdelivr.net. Jika peningkatan ditunda, pastikan autentikasi server FastMCP dikonfigurasi dan batasi klien mana yang dapat memanggil alat GenerativeUI.