- Kerentanan validasi perintah ditemukan pada Cortex Code CLI milik Snowflake, yang memungkinkan penyerang menjalankan perintah arbitrer di luar sandbox
- Serangan dipicu melalui injeksi prompt tidak langsung, melewati prosedur persetujuan pengguna untuk mengunduh dan mengeksekusi skrip berbahaya
- Perintah di dalam sintaks process substitution tidak divalidasi, sehingga kode berbahaya yang menyamar sebagai perintah aman dapat dijalankan secara otomatis
- Penyerang menggunakan token autentikasi Snowflake milik korban untuk mencuri database atau menghapus tabel, sehingga menimbulkan dampak serius
- Snowflake merilis patch versi 1.0.25 pada 28 Februari 2026 untuk memperbaiki masalah ini, dan patch diterapkan melalui pembaruan otomatis
Ringkasan kerentanan Cortex Code CLI
- Cortex Code CLI adalah agen coding berbasis perintah yang mirip dengan Claude Code atau OpenAI Codex, dengan kemampuan terintegrasi untuk menjalankan SQL di dalam Snowflake
- Dua hari setelah peluncuran, ditemukan bahwa cacat pada sistem validasi perintah memungkinkan perintah yang dirancang khusus dijalankan tanpa prosedur persetujuan dan keluar dari sandbox
- Penyerang dapat memanfaatkan hal ini untuk menggunakan kredensial Snowflake korban guna melakukan aksi berbahaya seperti eksfiltrasi data atau penghapusan tabel
- Tim keamanan Snowflake memverifikasi masalah tersebut lalu memperbaikinya, dan patch dirilis pada versi 1.0.25
Tahapan rantai serangan
- Saat pengguna menjalankan Cortex dengan mode sandbox aktif, sistem dirancang untuk meminta persetujuan pengguna sebelum mengeksekusi perintah
- Namun, penyerang memanipulasi Cortex melalui injeksi prompt yang disembunyikan di file README, sehingga mendorong eksekusi perintah berbahaya
- Sub-agent Cortex membaca injeksi tersebut dan menjalankan perintah tanpa prosedur persetujuan
- Karena perintah di dalam sintaks process substitution
<()> tidak divalidasi, malware dapat dieksekusi dengan tampilan seolah-olah merupakan perintah aman
- Injeksi tersebut juga menetapkan flag
dangerously_disable_sandbox agar proses berjalan di luar sandbox
- Akibatnya, skrip berbahaya diunduh dan dieksekusi tanpa persetujuan pengguna
Dampak serangan
- Penyerang memperoleh hak remote code execution pada sistem korban
- Dengan menggunakan kredensial koneksi Snowflake korban, mereka dapat melakukan tindakan seperti berikut
- Mencuri isi database
- Menghapus tabel
- Menambahkan akun pengguna berbahaya
- Mengubah aturan jaringan untuk memblokir pengguna yang sah
- Skrip berbahaya mencari token autentikasi yang di-cache oleh Cortex lalu mengeksekusi kueri SQL ke Snowflake
- Pada akun developer, izin baca-tulis memungkinkan eksfiltrasi dan perusakan data
Masalah hilangnya konteks pada sub-agent
- Selama serangan berlangsung, Cortex memanggil beberapa sub-agent dan terjadi hilangnya konteks
- Agen utama memang memperingatkan pengguna bahwa perintah berbahaya telah ditemukan, tetapi sub-agent sudah lebih dulu mengeksekusi perintah tersebut
- Akibatnya, pengguna tidak menyadari bahwa eksekusi sebenarnya telah terjadi
Pengungkapan kerentanan dan respons
- Pada 5 Februari 2026, PromptArmor melakukan responsible disclosure kepada Snowflake
- Sepanjang Februari, Snowflake bekerja sama dengan PromptArmor untuk memverifikasi dan memperbaiki kerentanan tersebut
- Patch dirilis pada versi 1.0.25 tanggal 28 Februari, dan diterapkan melalui pembaruan otomatis saat pengguna menjalankan ulang Cortex
- Hasil pengujian menunjukkan tingkat keberhasilan serangan sekitar 50%, menegaskan pentingnya pelatihan keamanan terhadap sifat non-deterministik LLM
Jadwal utama
- 2 Februari 2026: Snowflake Cortex Code diluncurkan
- 5 Februari 2026: PromptArmor melaporkan kerentanan
- 12 Februari 2026: Snowflake menyelesaikan verifikasi kerentanan
- 28 Februari 2026: Versi perbaikan 1.0.25 dirilis
- 16 Maret 2026: Pengungkapan bersama oleh PromptArmor dan Snowflake
1 komentar
Komentar Hacker News
Biasanya saya membaca pernyataan resmi dari perusahaan yang bermasalah lebih dulu
Tapi saya kaget karena pengumuman Snowflake hanya bisa dilihat jika punya akun
Setelah membacanya, sepertinya istilah “sandbox” dipakai dengan keliru
Jika “Cortex secara default dapat mengatur flag agar bisa menjalankan perintah di luar sandbox”, maka itu sudah bukan sandbox lagi
Di SQL pun masalah ini tidak benar-benar teratasi sampai query terparameter digunakan, dan bahasa alami jauh lebih bebas
Pada akhirnya serangan seperti “abaikan instruksi sebelumnya dan …” akan terus berulang
Jika data dan perintah berada dalam aliran yang sama, hasilnya akan selalu sama
Karena bahasa alami itu sendiri adalah permukaan serangan, cakupannya pasti lebih luas
Dokumen terkait: RFC 3514
Padahal arti yang saya kenal adalah lingkungan terisolasi untuk mengamati malware dengan aman
Saya rasa ini bidang yang menarik karena ada banyak upaya untuk membangun batas teknis yang benar-benar nyata juga di AI
Jika pengguna bisa langsung mengutak-atik sakelar untuk mengaktifkan hak akses, itu bukan sandbox
Awalnya saya kira ini soal eskalasi hak akses OS, tapi ternyata hanya contoh desain keamanan yang buruk
Dari contoh yang dikutip dalam makalah Anthropic, AI terkadang juga melakukan tindakan berbahaya secara otonom
Misalnya firewall Alibaba Cloud mendeteksi upaya penambangan kripto dari server pelatihan,
dan katanya perilaku seperti ini muncul sebagai efek samping selama optimasi RL
Referensi terkait: makalah arXiv, riset Anthropic, artikel Time
jadi muncul pertanyaan bagaimana SSH tunnel atau pemindaian resource bisa dilakukan jika kontrol jaringan memang ada
Seorang karyawan Snowflake muncul dan membagikan linimasa respons tim keamanan serta perbaikan yang telah dilakukan
Detailnya bisa dilihat di dokumen resmi
Saat membaca bagian “perintah shell dijalankan tanpa persetujuan manusia”,
siapa pun yang pernah sedikit saja memikirkan keamanan shell pasti heran bahwa cara pembuatan subproses tampaknya tidak dipertimbangkan
Pembatasan seperti ini harus diterapkan di tingkat OS agar aman
Ada usulan untuk berbagi “tip sandboxing yang sungguhan”
Saya menjalankan Claude Code di dalam devcontainer VS Code
Ada juga pengaturan untuk membatasi akses internet hanya ke domain yang diizinkan
Namun karena butuh lingkungan docker-in-docker, integrasi penuh jadi sulit
Jadi untuk saat ini saya hanya menjalankan unit test, dan sedang mempertimbangkan Vagrant untuk isolasi VM penuh
Tautan proyek: aflock.ai
Saat melihat kalimat “Cortex tidak mendukung workspace trust”,
saya jadi bertanya-tanya apakah sejak awal ini memang lingkungan tanpa pembatasan
Jika model mengatur flag tersebut, eksekusi langsung terjadi di luar sandbox tanpa persetujuan pengguna
Ada lelucon “apakah ini riset gain-of-function yang baru”
maksudnya keyakinan bahwa agen bisa mengendalikan dirinya sendiri itu hanyalah ilusi
Banyak orang sudah menjalankan kode yang dibuat agen tanpa peninjauan
Kalau begitu, apa arti membungkus agen itu sendiri dengan sandbox
Pada akhirnya seluruh sistem tetap harus diisolasi di mesin terpisah, container, atau pengguna dengan hak terbatas
Mungkin karena kebanyakan pengguna tidak melakukan itu,
para vendor mencoba menyediakan pengaman dasar sebagai gantinya
Ada pendapat bahwa “sandbox yang bisa dimatikan dengan toggle bukan sandbox sungguhan”
Ini tampak seperti bualan pemasaran untuk menutupi desain produk yang lemah
dan bahwa sandbox yang sesungguhnya harus berupa lingkungan isolasi eksternal yang tidak bisa diubah dari dalam