Apa yang terjadi
Fitur 'codeMode' PraisonAI, yang ditujukan untuk membiarkan agen menjalankan JavaScript terbatas, menggunakan blocklist string yang dapat dilewati sebagai satu-satunya kontrol keamanan di sekitar new Function()/with(sandbox), memungkinkan sandbox escape penuh dan eksekusi kode sewenang-wenang pada host yang menjalankan agen.
Mengapa penting
PraisonAI adalah kerangka kerja orkestrasi multi-agen; codeMode secara khusus adalah permukaan eksekusi alat yang terpapar ke konten yang dihasilkan LLM, sehingga prompt injection tidak langsung atau respons alat berbahaya dapat mendorong agen untuk melarikan diri dari sandbox dan mengeksekusi kode sewenang-wenang pada host — kelas serangan eksekusi agen novel buku teks dengan teknik bypass terdokumentasi.
Vektor serangan
codeMode mengeksekusi JavaScript yang tidak dipercaya/yang dihasilkan model dengan new Function() di dalam blok with(sandbox), mengandalkan hanya pada blocklist string kode sumber dan properti process/require yang ditayangkan ulang. Penyerang (atau output LLM yang diinjeksi prompt) dapat membuat kode yang memotong blocklist — misalnya melalui Function('return this')() — untuk memulihkan objek global nyata dan melarikan diri dari sandbox, pada akhirnya mencapai proses Node.js dan eksekusi tingkat OS. CVE terkait kedua (CVE-2026-57141) mencakup teknik bypass regex-blocklist yang sama.
Sistem yang terdampak
PraisonAI (praisonai-ts), versi 1.4.0 melalui 1.7.2
Mitigasi
Upgrade PraisonAI (praisonai-ts) ke 1.7.2 atau lebih baru, yang menggantikan sandbox blocklist-string dengan isolasi yang tepat. Sampai di-patch, nonaktifkan codeMode atau batasi eksekusi agen ke kode yang dipercaya dan bukan pengaruh penyerang.