Image credit: magnific
Amankan Sistem dari Eksploitasi Sandbox vm2 – Sebuah kerentanan kritis ditemukan pada pustaka sandboxing populer Node.js, vm2, yang memungkinkan penyerang keluar dari lingkungan terisolasi (sandbox) dan mengeksekusi kode arbitrer pada sistem inang (host).
Isu keamanan ini dilacak sebagai CVE-2026-26956 dan telah dikonfirmasi berdampak pada vm2 versi 3.10.4, meskipun versi-versi sebelumnya kemungkinan besar juga terdampak.
Kode eksploitasi pembuktian konsep (Proof-of-Concept/PoC) telah dipublikasikan secara luas, meningkatkan risiko serangan aktif di lapangan.
|
Baca juga: Ketika AI Memudahkan Penipuan Daring |
Mekanisme Pelarian Sandbox via WebAssembly
vm2 adalah pustaka sumber terbuka yang digunakan untuk menjalankan kode JavaScript yang tidak tepercaya di dalam lingkungan terbatas.
Pustaka ini sangat populer di kalangan platform pengkodean daring, alat otomatisasi, dan aplikasi SaaS yang perlu menjalankan skrip kiriman pengguna. Dengan lebih dari 1,3 juta unduhan mingguan di npm, dampak dari celah ini sangat masif.
CVE-2026-26956 berakar pada kesalahan penanganan eksepsi (exception) yang melintasi batas antara lingkungan sandbox dan sistem inang. Secara teknis, masalah ini terjadi karena:
- Bypass Defisit JavaScript: vm2 mengandalkan perlindungan tingkat JavaScript untuk membungkus objek lintas konteks. Namun, fitur penanganan eksepsi WebAssembly dapat mencegat kesalahan JavaScript pada tingkat yang lebih rendah di dalam mesin V8 Google, melewati pertahanan vm2.
- Kebocoran Objek Host: Dengan memicu TypeError yang dirancang khusus menggunakan konversi Symbol-to-string, penyerang dapat menyebabkan objek kesalahan dari sisi inang bocor kembali ke dalam sandbox tanpa dibersihkan oleh vm2.
- Eksekusi Perintah Arbitrer: Penyerang dapat menyalahgunakan rantai konstruktor (constructor chain) dari objek yang bocor tersebut untuk mendapatkan kembali akses ke internal Node.js, seperti objek process, yang pada akhirnya memungkinkan eksekusi perintah sistem secara penuh pada mesin inang.
Kerentanan ini secara spesifik berdampak pada lingkungan yang menjalankan Node.js 25 (dikonfirmasi pada versi 25.6.1) yang telah mengaktifkan penanganan eksepsi WebAssembly dan dukungan JSTag.
Sejarah Panjang Kerentanan vm2
Celah keamanan kali ini menambah daftar panjang tantangan dalam mengisolasi kode yang tidak tepercaya secara aman di lingkungan JavaScript. Sepanjang tahun 2026 dan tahun-tahun sebelumnya, vm2 telah berulang kali dihantam oleh kerentanan serupa:
- CVE-2026-22709: Kerentanan pelarian sandbox kritis lainnya yang ditemukan awal tahun ini.
- CVE-2023-30547 & CVE-2023-29017: Isu keamanan tahun 2023 yang juga memungkinkan eksekusi kode arbitrer.
- CVE-2022-36067: Salah satu celah pelarian sandbox yang paling awal menarik perhatian luas terhadap keamanan pustaka ini.
Banyaknya kerentanan ini mencerminkan betapa sulitnya membangun isolasi yang benar-benar kedap di atas mesin JavaScript yang kompleks dan terus berkembang.
|
Baca juga: Membatasi Kerugian Ketika Perangkat Hilang atau Dicuri |
Langkah Mitigasi Sistem
Mengingat eksploitasi PoC sudah tersedia, para pengembang dan administrator sistem disarankan untuk segera mengambil langkah-langkah berikut:
- Pengguna vm2 sangat direkomendasikan untuk melakukan pemutakhiran ke versi 3.10.5 atau yang lebih baru (versi terbaru saat ini adalah 3.11.2). Pembaruan ini berisi perbaikan krusial untuk menutup celah kebocoran objek host tersebut.
- Jika aplikasi Anda sangat mengandalkan vm2 dan tidak dapat segera diperbarui, pertimbangkan untuk menggunakan versi Node.js LTS (seperti versi 22 atau 24) yang stabil dan mungkin tidak mengaktifkan fitur WebAssembly yang memicu celah ini secara default.
- Tingkatkan pengawasan terhadap skrip yang diunggah oleh pengguna. Meskipun sandboxing bertujuan memberikan keamanan, pemfilteran input tambahan di tingkat aplikasi tetap diperlukan sebagai lapisan pertahanan kedua.
- Untuk keamanan maksimal, jangan hanya mengandalkan isolasi berbasis pustaka perangkat lunak. Pertimbangkan untuk menjalankan proses penanganan kode tidak tepercaya di dalam kontainer (container) atau mesin virtual (VM) yang terisolasi secara fisik dari sistem utama.
- Jika aplikasi Anda tidak memerlukan WebAssembly, pastikan fitur tersebut dinonaktifkan di tingkat mesin V8 untuk memperkecil permukaan serangan.
Tantangan dalam Isolasi Virtual
Kasus CVE-2026-26956 membuktikan bahwa sandbox perangkat lunak sering kali tertinggal di belakang inovasi mesin penggeraknya (seperti V8).
Kemampuan peretas untuk mengeksploitasi jembatan antara WebAssembly dan JavaScript menunjukkan bahwa keamanan absolut dalam lingkungan sandbox sangat sulit dicapai.
Di tahun 2026, organisasi harus mengadopsi prinsip pertahanan berlapis (defense-in-depth) dan tidak hanya mengandalkan satu pustaka untuk melindungi infrastruktur penting mereka dari kode eksternal yang berbahaya.
Sumber berita: