Asisten kode AI dapat dibajak oleh entri .git/config berbahaya yang mengeksploitasi fitur core.fsmonitor Git, memungkinkan repositori yang tidak tepercaya untuk menjalankan perintah pada mesin pengembang seketika asisten tersebut memindai file-filenya.

Celah ini muncul pada beberapa agen populer—Claude Code, Cursor, OpenAI Codex, Goose, Qwen Code, Grok Build, dan Hermes. Pada agen yang sudah diperbaiki, eksploitasi ini tidak lagi berfungsi; sementara yang lainnya tetap rentan. Tidak diperlukan klik atau perintah tambahan, dan kode berbahaya tersebut berjalan dengan hak akses pengguna itu sendiri, di luar sandbox apa pun yang mungkin disediakan oleh agen AI tersebut.

Bagaimana serangan mencapai pengembang

  • Seorang kontraktor mengompres proyek dalam format zip dan mengirimkannya melalui email.
  • Seorang rekan tim membagikan folder di drive jaringan.
  • Sebuah USB stick diberikan bersama dengan basis kode (codebase).

Dalam setiap kasus, repositori datang sebagai direktori yang sudah berisi folder .git. Ketika asisten AI membuka folder tersebut, ia biasanya menjalankan git status di latar belakang untuk membangun tampilan kode. Git mempercepat operasi tersebut dengan pengaturan core.fsmonitor, yang memberitahu Git untuk memanggil program eksternal guna memantau perubahan pada sistem file. Jika file .git/config repositori mendefinisikan perintah berbahaya untuk core.fsmonitor, Git akan mengeksekusinya secara otomatis tanpa berkonsultasi dengan pengguna.

Karena perintah tersebut diluncurkan oleh Git sendiri, ia mewarisi hak akses pengguna dan melewati sandbox apa pun yang mungkin telah disiapkan oleh alat AI. Eksploitasi ini tidak berjalan selama proses git clone, git fetch, atau git pull yang normal; ia hanya aktif ketika repositori diekstrak dengan metadata .git yang sudah ada di dalamnya.

Mengapa masalah ini penting

Pengembang semakin bergantung pada asisten AI untuk menyarankan penyelesaian kode (completions), melakukan refaktor kode, atau menghasilkan seluruh modul. Alat-alat tersebut membutuhkan snapshot cepat dari struktur file proyek, sehingga mereka memanggil perintah Git secara diam-diam. Jika repositori berbahaya dapat mengeksekusi kode pada saat itu, penyerang akan mendapatkan pijakan pada workstation pengembang tanpa peringatan yang terlihat. Potensi payload berkisar dari pencurian kredensial hingga pemasangan backdoor yang persisten, sementara pengguna mengira mereka hanya sekadar "memeriksa" kode dengan bantuan AI.

Mendeteksi repositori yang telah diracuni

Sebelum menyerahkan repositori ke asisten, jalankan:

git config --get core.fsmonitor

Output yang tidak kosong berarti sebuah program telah diatur untuk berjalan secara otomatis. Untuk pemindaian yang lebih luas, daftar pengaturan Git yang mencurigakan:

git config --local --list | grep -Ei 'fsmonitor|hooksPath|sshCommand|pager|editor|filter\.'

Jika Anda menemukan entri yang tidak Anda tambahkan, hapus dengan:

git config --local --unset core.fsmonitor

Perlu dicatat bahwa mengatur git config --global core.fsmonitor false tidak akan melindungi Anda. Pengaturan repositori lokal selalu menimpa pengaturan global, sehingga repositori berbahaya dapat dengan mudah mengabaikan aturan global tersebut.

Lanskap perbaikan saat ini

  • Claude Code – sudah diperbaiki (fsmonitor)
  • Cursor – sudah diperbaiki
  • OpenAI Codex – sudah diperbaiki
  • Goose – sudah diperbaiki
  • Qwen Code – belum diperbaiki
  • Grok Build – belum diperbaiki
  • Hermes – belum diperbaiki

Pengembang yang menggunakan agen yang belum diperbaiki harus menganggap repositori apa pun yang masuk sebagai sesuatu yang berpotensi berbahaya sampai mereka mengganti alat atau menerapkan kebijakan Git lokal yang lebih ketat.

Argumen tandingan dari komunitas Git

core.fsmonitor milik Git adalah fitur performa yang sah, bukan sebuah bug. Para pengelola berpendapat bahwa tanggung jawab terletak pada pemanggil untuk memvalidasi isi repositori sebelum memanggil perintah Git. Menonaktifkan fitur ini secara global adalah mitigasi yang mudah, tetapi seperti yang telah dicatat, pengaturan lokal dapat menyabotase perlindungan tersebut. Diskusi yang lebih luas kini berpusat pada apakah asisten AI harus melakukan sandboxing pada semua pemanggilan Git eksternal atau menolak untuk memproses repositori yang berisi hook fsmonitor kustom.

Apa yang perlu diperhatikan selanjutnya

  • Pembaruan dari agen AI yang belum diperbaiki—terutama pernyataan apa pun mengenai sandboxing pemanggilan Git.
  • Potensi perubahan dalam penanganan default Git terhadap core.fsmonitor untuk direktori yang tidak tepercaya.
  • Alat pihak ketiga yang dapat membersihkan (sanitize) .git/config repositori sebelum sampai ke asisten.

Kesimpulan

Satu baris dalam file konfigurasi tersembunyi dapat mengubah kemudahan bertenaga AI menjadi vektor eksekusi kode jarak jauh (remote-code-execution). Sampai agen yang rentan diperbaiki, praktik teraman adalah mengaudit setiap repositori yang datang di luar alur kerja clone standar dan menghapus hook core.fsmonitor atau hook serupa lainnya sebelum membiarkan asisten AI menyentuh kode tersebut.