Satu titik di akhir nama file, Copilot di VS bisa jalankan perintah

Rilis tambalan bulanan Microsoft pada 13 Oktober memperbaiki sebuah celah eksekusi kode jarak jauh terkait Copilot dengan nomor CVE-2026-103572. Celah ini memengaruhi Visual Studio (termasuk 2026, 2022, dan versi lama lainnya) serta SQL Server Management Studio (SSMS). Penemunya adalah peneliti keamanan Johann Rehberger, yang pada hari yang sama menerbitkan rincian teknisnya di blog pribadinya, Embrace The Red.

Kedua produk memakai satu pustaka inti bersama, Microsoft.VisualStudio.Copilot.Core.dll, dan celah itu berada di sana, sehingga satu masalah mengenai dua produk sekaligus.

Bagaimana satu titik lolos dari pemeriksaan

Di dalam IDE, Copilot dapat menulis file atas nama pengguna, tetapi file konfigurasi seperti .mcp.json dan file pengaturan Visual Studio ditetapkan sebagai objek yang dilindungi dan tidak boleh disentuhnya. Masalahnya ada pada cara pemeriksaan: logika validasi membandingkan string mentah.

Lapisan Win32 di Windows punya aturan lama bahwa titik di akhir nama file dihapus secara otomatis. Rehberger mengutip dokumentasi Microsoft sendiri: "File and Folder names that end with the ASCII Period (0x2E) character will also be saved without this character." Maka pada saat validasi, settings.json. bukanlah string yang sama dengan settings.json, dan pemeriksaan meloloskannya. Ketika benar-benar ditulis ke disk, titik di ujungnya hilang, sehingga yang tertulis adalah file terlindungi itu sendiri.

Rantai serangannya kira-kira begini. Penyerang lebih dulu memengaruhi Copilot lewat injeksi prompt tidak langsung, misalnya dengan menyisipkan instruksi pada data yang dikembalikan sebuah server MCP. Copilot menurutinya dan menulis isi yang diinginkan penyerang ke file konfigurasi seperti .mcp.json. Saat IDE membaca konfigurasi itu, perintah berbahaya dijalankan. Di Visual Studio, mengubah pengaturan path alat tertentu juga dapat memicu eksekusi perintah.

Rehberger turut melaporkan beberapa masalah lain: path traversal dengan ..\ bisa membaca file terlarang, sebagian file membocorkan pengenal instalasi, dan model MAI-Code-1-Flash tergolong lemah menghadapi injeksi prompt tidak langsung. Menurut analisisnya, perbaikan Microsoft adalah menambahkan satu panggilan GetFullPath yang menormalkan path lebih dulu, membuang titik di akhir dan menguraikan .., baru kemudian melakukan perbandingan.

Celah sejenis untuk kedua kalinya

Ini bukan pertama kalinya Rehberger menyerang lewat file konfigurasi. Pada Agustus 2025 ia mengungkap celah eksekusi kode jarak jauh pada GitHub Copilot di VS Code (CVE-2025-53773): injeksi prompt membuat Copilot menulis ulang settings.json di ruang kerja, mengaktifkan opsi eksekusi alat otomatis tanpa konfirmasi, lalu perintah bisa langsung dijalankan. Saat itu pun perbaikannya dirilis bersama Patch Tuesday Microsoft.

Jika kedua kasus dilihat bersamaan, polanya sama: agen diizinkan menulis file, file konfigurasi menentukan apa yang bisa dilakukan agen dan IDE, dan selama agen bisa dibuat menulis ke konfigurasi, hak aksesnya diperbesar oleh agen itu sendiri. Pelajaran dari 2025 adalah menambahkan daftar perlindungan untuk file konfigurasi, dan lapisan yang berhasil dilewati kali ini persis daftar itu. Kesimpulan Rehberger dalam tulisannya:

"Security controls around agents must hold even when the agent itself is compromised or misaligned."

Kontrol keamanan di sekitar agen harus tetap bertahan meskipun agen itu sendiri telah dikompromikan atau perilakunya menyimpang.

Apa yang perlu dilakukan pengguna

Berdasarkan lini masa, Rehberger mengirim laporan pada 4 Agustus, melengkapi dampak pada Visual Studio dan rincian eksploitasi pada 4 hingga 7 Agustus, lalu menindaklanjuti pada 30 Agustus. Microsoft mengonfirmasi pada 16 September, memberi tahu pada 11 Oktober bahwa hadiahnya 0, dan merilis perbaikan pada 13 Oktober. Mengapa Microsoft tidak memberi hadiah, tidak dijelaskan dalam materi yang dipublikasikan.

Bagi tim yang memakai Visual Studio dan SSMS, hanya ada satu langkah: pasang tambalan bulan ini secepatnya. Lingkungan yang menghubungkan Copilot ke server MCP pihak ketiga berisiko lebih tinggi, karena pintu masuk injeksi prompt justru data eksternal semacam itu.

Sumber: blog teknis Embrace The Red, CocoLoop, Microsoft Security Update Guide. Nomor CVE, skor CVSS, dan tonggak pengungkapan mengacu pada blog peneliti dan pengumuman Microsoft.