Apa yang terjadi
Datadog Security Labs menemukan eksekusi kode jarak jauh kritis di antarmuka browser agen coding AI OpenCode: API /global/upgrade menggabungkan kebingungan tipe konten di penangan permintaan mentah dengan penanganan tidak aman dari target upgrade yang dikendalikan penyerang, memungkinkan situs web berbahaya mengganti tarball npm di jalur dengan skrip lifecycle package.json berbahaya. Eksploitasi hanya memerlukan pengguna yang menjalankan versi terpengaruh mengunjungi halaman yang dibuat sementara server agen lokal aktif.
Mengapa penting
Agen coding AI adalah permukaan kepercayaan tertinggi di mesin pengembang — ia memegang kredensial pengguna, akses repo, dan hak istimewa shell. Mengkompromikannya melalui kunjungan halaman web yang tidak berbahaya mengubah tindakan browsing sehari-hari menjadi eksekusi kode penuh di host agen, secara langsung memungkinkan keracunan rantai pasokan kode dan pencurian kredensial bagi siapa pun yang menulis kode berbantuan AI.
Vektor serangan
Halaman web yang dibuat dikunjungi saat antarmuka web OpenCode berjalan (opencode serve/web di 127.0.0.1:4096) memicu jalur kebingungan tipe konten: endpoint /global/upgrade meneruskan target upgrade yang dikendalikan penyerang ke dalam perintah instalasi package-manager, dan spesifikasi paket npm menerima URL tarball jarak jauh — sehingga permintaan form tersembunyi/teks-jelas dapat mengarahkan instalasi ke paket berbahaya yang skrip lifecycle preinstall berjalan dengan hak istimewa proses OpenCode. Layanan localhost tanpa autentikasi dapat dijangkau dari halaman bermusuhan melalui navigasi form HTML tingkat atas (melewati CORS). Tidak ada CVE yang diminta; pantau advisori GitHub.
Sistem yang terdampak
OpenCode 1.14.30–1.18.21 (diinstal melalui npm/pnpm/Bun); diperbaiki di 1.18.22; advisori GitHub GHSA-632h-h47v-g4x4
Mitigasi
Tingkatkan ke OpenCode 1.18.22+ (memvalidasi target upgrade sebagai versi semantik dan menolak body teks/jelas). Pertahanan berlapis: atur OPENCODE_SERVER_PASSWORD, jangan ekspos layanan di luar localhost, perlakukan aktivitas package-manager mendadak sebagai bukti kompromi