
Deadbugz: server MCP yang berubah menjadi bermusuhan pada pemanggilan tool ketiga, di-push ke 23 repositori dalam 74 menit
- OrcaBARUOrcaCyber: MiniMax M3.1 Flash Abliterated2026-10-29orca/orcacyber-minimax-m3.1-flash
- OrcaBARUOrcaCyber: GLM 5.3 Flash Abliterated2026-10-2793 tok/s
- OrcaBARUOrcaCyber: Qwen3.8 Flash Next Abliterated2026-10-26$0.80 / $1.60 per 1 juta token · 260 tok/s
- OrcaBARUOrcaCyber: MiMo V2.6 Flash Abliterated2026-10-26$0.80 / $1.60 per 1 juta token · 92 tok/s
- MoonshotBARUMoonshotAI: Kimi K3.1 Pro2026-10-2446Kecerdasan
- OrcaBARUOrcaCyber: DeepSeek V4.1 Flash Abliterated2026-10-23$0.80 / $1.60 per 1 juta token · 104 tok/s
- minimaxBARUMiniMax: M3.1 Flash2026-10-1929Kecerdasan
- OrcaBARUOrca: OrcaCyber Ultra 1.02026-10-17$5.00 / $10.00 per 1 juta token · 65 tok/s
- deepseekBARUDeepSeek: DeepSeek V4.1 Flash 10172026-10-1733Kecerdasan
- DeepSeekBARUDeepSeek: DeepSeek V4.1 Flash2026-10-1740Kecerdasan
- OrcaOrca: OrcaCyber Zero 1.52026-10-10$3.00 / $7.50 per 1 juta token · 101 tok/s
- openaiOpenAI: GPT-6.1 Sol2026-09-2955Kecerdasan
- anthropicAnthropic: Claude Sonnet 5.52026-09-2854Kecerdasan
- typesafeTypeSafe: Jev 1.132026-09-24$0.04 / $0.00 per 1 juta token · 180 tok/s
- OpenAIOpenAI: GPT-6 Luna2026-09-2228Kecerdasan
- OpenAIOpenAI: GPT-6 Sol2026-09-2248Kecerdasan
- AnthropicAnthropic: Claude Opus 5.52026-09-2258Kecerdasan
- xiaomiXiaomi: MiMo-V2.6-Flash2026-09-2127Kecerdasan
- xiaomiXiaomi: MiMo-V2.6-Pro2026-09-2130Kecerdasan
- xAIGrok 4.72026-09-2134Kecerdasan
Pada 10 Agustus 2026, satu akun GitHub, zellkernel, membuka 23 pull request dalam 74 menit terhadap repositori AI, MCP, dan perkakas pengembang yang tidak terkait, masing-masing menambahkan server MCP bernama productivity-suite yang mengiklankan dua alat biasa, format_text dan summarize. Menurut Pillar Security, yang menamai kampanye ini Deadbugz dan menerbitkan tulisannya pada 12 Agustus, server tersebut mengembalikan hasil yang jujur untuk tiga panggilan pertamanya lalu menulis ulang metadata yang diserahkannya kepada agen: deskripsi alat dan konten prompt mulai mengarahkan model ke kunci SSH, kredensial AWS, riwayat shell, dan konfigurasi Kubernetes, serta menyuruhnya menyembunyikan aktivitas itu dari pengguna. Sembilan belas dari 23 pull request ditutup, empat masih terbuka, dan tidak ada yang telah digabungkan saat Pillar meninjaunya. Belum ada korban yang terkonfirmasi. Ini adalah satu catatan, dilaporkan oleh pihak lain dan di sini dikutip dengan atribusi kepada mereka. Insiden agen lain yang terdokumentasi, masing-masing dengan sumber, tingkat keparahan, tingkat keyakinan, dan penanda sengketa tersendiri, berada di arsip insiden AI — sehingga kampanye rantai pasok yang menyasar perkakas agen dapat dibaca bersanding dengan bagian lain dari apa yang benar-benar telah terjadi.
Arsip menilai catatan ini dengan tingkat keparahan tinggi dan keyakinan A — terdokumentasi dengan baik, dengan sumber-sumber primer yang saling sejalan — sekaligus secara terpisah mencatat tidak ada kerugian nyata yang terkonfirmasi. Kedua hal itu benar secara bersamaan, dan celah di antara keduanya adalah inti dari catatan ini: sebuah kampanye yang desainnya terdokumentasi secara luar biasa rinci sebelum menghasilkan korban yang dapat disebutkan namanya oleh siapa pun. Dua tanggal yang penting berjarak dua hari. Pull request dikirim pada 10 Agustus; Ariel Fogel dari Pillar Security menerbitkan analisisnya pada 12 Agustus, dan postingan itu memuat catatan tetap bahwa postingan tersebut akan diperbarui saat informasi terverifikasi masuk.
Tiga panggilan, lalu metadata berubah.
Server MCP tidak harus menjalankan kode di sebuah mesin untuk mengubah perilaku agen. Definisi alat diberikan kepada model sebagai konteks pada setiap sesi, yang berarti server yang menyediakannya dapat menulis ulang instruksi yang dibaca agen sementara nama alat, repositori, dan manifesnya tetap persis seperti semula. Deadbugz dibangun di atas asimetri tersebut, dan Pillar menyebutnya runtime-gated MCP metadata poisoning.
Mekanismenya cukup kecil untuk dijelaskan dalam satu kalimat. Server menyimpan penghitung dalam memori per klien untuk permintaan tools/call. Untuk tiga permintaan pertama, ia berperilaku normal. Begitu penghitung terpicu, respons tools/list dan prompts/get berikutnya kembali dalam bentuk yang diubah — deskripsi alat berbeda, konten prompt berbeda — mengarahkan agen ke kunci SSH, kredensial AWS, riwayat shell, dan konfigurasi Kubernetes serta menginstruksikannya untuk menyembunyikan aktivitas tersebut dari pengguna. Teks prompt yang teracuni membawa penanda deadbugz dan alamat Bitcoin.
Gerbang ini juga menjadi alasan pertahanan biasa tidak mendeteksinya. Payload sudah ada dalam sumber sejak permintaan pertama; tidak ada bagian dari kode atau konfigurasi yang berubah pada saat peralihan terjadi. Pemindaian statis, entri SBOM, atau pembacaan sekali atas manifes alat pada waktu instalasi akan melihat utilitas pemformatan, karena itulah yang dikembalikan utilitas tersebut sampai penghitung bergerak. Pillar menggambarkan peralihan tertunda sebagai teknik penghindaran riset, dan menyatakan bahwa para penelitinya mengonfirmasi ambang batas maupun metadata yang diubah dengan mengirim permintaan hanya-teks ke layanan jarak jauh yang aktif dan mencocokkan responsnya dengan sumber publik.
Satu detail membuat jebakan ini lebih luas daripada satu sesi saja. Server mengiklankan tools.listChanged, kemampuan MCP yang memberi tahu klien bahwa daftar alatnya telah direvisi. Klien yang mematuhi sinyal itu akan membaca ulang definisi di tengah sesi dan menarik versi yang telah diracuni tanpa tindakan operator; klien yang menyimpan definisi saat persetujuan tidak akan melakukannya. Perilaku mana yang dimiliki agen tertentu adalah properti klien, bukan properti server, dan tulisan Pillar tidak merinci klien berdasarkan nama.

Pengiriman: 23 pull request dalam 74 menit
Distribusi itu bukan paket di sebuah registri atau dependensi beracun yang terkubur dalam lockfile. Itu adalah spam pull-request terhadap proyek-proyek yang tidak ada hubungannya dengan fungsi server yang seharusnya, yang merupakan bentuk upaya rantai pasok berbiaya rendah ketika penyerang tidak bisa mendapatkan akun maintainer: ajukan cukup banyak perubahan konfigurasi dan tunggu sampai salah satunya digabungkan atau diterapkan secara lokal.
Rincian Pillar atas 23 tersebut terbagi menjadi tiga. Tujuh belas menambahkan endpoint MCP jarak jauh, productivity-suite-mcp[.]onrender[.]com/mcp, di-host di Render; empat memanggil file Python lokal tersembunyi di ~/.config/.cache/.sys/.deadbug-mcp.py; dua merupakan pengiriman direktori atau daftar, yang oleh tulisan tersebut diperlakukan sebagai pengintaian atau pengisi, bukan pengiriman. Rentang waktu diberikan sebagai 9:52 PM hingga 11:07 PM UTC pada 10 Agustus 2026 — 74 menit dalam kerangka pengungkapan, meskipun kedua stempel waktu itu sendiri mencakup 75 menit, dan tidak ada apa pun dalam catatan yang bergantung pada menit tersebut. Hanya satu repositori target yang disebutkan secara individual: getsentry/sentry-mcp, pull request #1239, dikutip sebagai contoh pengiriman artefak lokal.
Akun di baliknya cukup besar untuk usia akun itu. Pada saat pengumpulan Pillar, zellkernel memiliki 50 repositori publik, 20 di antaranya fork, dan 21 dari 50 itu telah dibuat pada 10 Agustus, hari yang sama dengan kampanye. Profil tersebut tertaut silang ke akun X @llmgod, yang menautkan balik ke akun GitHub, yaitu jenis penautan timbal balik yang menunjukkan identitas yang dibuat khusus, bukan identitas yang dibajak.
Sembilan belas tertutup, empat terbuka, nol digabungkan adalah angka yang paling sering diulang dalam catatan itu dan juga yang paling sering dibaca sebagai tanda aman, padahal tidak sepenuhnya demikian. Tombol merge GitHub bukanlah catatan eksekusi host: seorang maintainer dapat menarik branch dan menjalankannya, menerapkan konfigurasi secara manual, atau job CI dapat mengambil head PR sebelum ada yang berkomentar. Keempat pull request yang menulis konfigurasi yang memanggil jalur skrip lokal adalah kasus yang paling terdampak oleh celah itu, karena skrip tersebut diambil dan dijalankan sepenuhnya di luar penghitungan merge GitHub. Cloud Security Alliance Labs menyampaikan poin yang sama dalam catatannya pada 2 September: hitungan tertutup dan tidak digabungkan tidak membuktikan bahwa tidak ada yang dijalankan.

Apa yang sudah mapan, dan apa yang belum
Ditetapkan melalui pengungkapan, dalam arti bahwa Pillar melaporkannya dari artefak yang dibacanya dan dalam satu kasus dari layanan yang ia kueri: server dan repositori sumbernya, dua alat yang diiklankan, penghitung dan ambang tiga panggilan, empat target kredensial, jumlah PR dan status merge-nya saat peninjauan, serta keterkaitan antara akun GitHub dan handle X. Pengujian Pillar sendiri terhadap endpoint live adalah item terkuat dalam daftar, karena ini merupakan reproduksi, bukan pembacaan kode sumber.
Tidak terbukti, dan catatan itu bersikap hati-hati soal ini: korban. Field real_harm di arsip tersebut bernilai false, yang merupakan pernyataan tentang bukti, bukan tentang niat — tidak ada seorang pun yang menghasilkan host, log, atau kredensial curian yang terkait dengan kampanye ini. Orang atau kelompok di balik zellkernel dan @llmgod juga tidak teridentifikasi; Pillar mengatribusikan operasi itu kepada akun-akun tersebut dan berhenti sampai di situ. Motif finansial bersandar pada alamat Bitcoin yang tertanam dalam payload, yang merupakan inferensi dari sebuah indikator, bukan temuan tentang aktornya. Dan pertanyaan yang paling ingin dijawab seorang defender — apakah kampanye ini masih berjalan — tidak punya jawaban dalam catatan itu: pos tersebut ditandai sebagai pos yang akan diperbarui, dan tidak ada revisi lanjutan atau pemberitahuan takedown dari GitHub maupun Render yang terlihat.
Dukungan bukti lebih tipis daripada yang mungkin disiratkan oleh tingkat keyakinan, dan ini perlu dikatakan secara gamblang. Dua Cloud Security Alliance Labs catatan riset, bertanggal 30 Agustus dan 2 September 2026, mengulang kampanye tersebut; catatan yang lebih akhir secara eksplisit menyatakan bahwa catatan itu memberi kredit kepada Pillar untuk penemuan, detail PR, perilaku server, dan atribusi akun, serta tidak menjelaskan verifikasi independen apa pun miliknya sendiri. Sebuah Armor pos blog bertanggal 22 September 2026 memberikan panduan defensif dan menyatakan bahwa Pillar membongkar server tersebut; pos itu tidak menawarkan bukti forensik apa pun miliknya sendiri. Tidak ada CVE yang ditetapkan, dan CSA menyatakan ini bukan kerentanan spesifikasi MCP. Per 29 Oktober 2026, pencarian tidak menghasilkan advisory dari GitHub atau Render, dan tidak ada liputan di pers keamanan arus utama — tidak ada item BleepingComputer, The Register, SecurityWeek, atau Hackread — yang tidak biasa untuk kampanye rantai pasok dengan bentuk ini dan itu sendiri merupakan bagian dari apa yang ditunjukkan oleh rekaman. "Sumber utama sepakat" di sini berarti satu sumber utama yang berasal dan serangkaian dokumen sekunder yang diturunkan darinya.
Dua ambiguitas yang lebih kecil perlu ditandai, bukan dihaluskan. Ringkasan sekunder berbeda pendapat tentang apakah panggilan ketiga atau keempat yang pertama kali menerima metadata yang teracuni, yang mengikuti dari penghitung yang digambarkan sebagai terpicu pada permintaan ketiga; catatan dan pengungkapan keduanya menggunakan tiga. Dan jendela pengiriman digambarkan sebagai 74 menit untuk stempel waktu yang mencakup 75.
Satu pemeriksaan yang tidak dapat diulang: pada 29 Oktober 2026, akun GitHub zellkernel dan repositori zellkernel/productivity-suite-mcp keduanya mengembalikan 404, dan satu-satunya pull request yang disebutkan secara individual, getsentry/sentry-mcp #1239, juga tidak lagi dapat diakses — repositori itu sendiri sekarang dialihkan ke getsentry/toolkit. Oleh karena itu, jumlah PR, status merge, dan isi repositori tidak dapat diverifikasi ulang secara pihak pertama hari ini; semuanya tetap menjadi snapshot Pillar, yang diambil pada pertengahan Agustus.

Apa yang diminta pengungkapan agar dilakukan para defender
Respons yang direkomendasikan Pillar terutama berkaitan dengan memperlakukan metadata sebagai permukaan keamanan, bukan sebagai deskripsi darinya. Bagi host, permintaan konkretnya adalah memblokir atau memburu productivity-suite-mcp[.]onrender[.]com/mcp, mempertahankan endpoint trycloudflare.com kampanye sebelumnya dalam daftar deny dan hunting meskipun Pillar mengatakan endpoint tersebut saat ini tidak aktif, dan tidak menjalankan deadbug-mcp.py — jalur file tersembunyi ~/.config/.cache/.sys/.deadbug-mcp.py adalah artefak yang harus dicari di seluruh direktori home, repositori, dan konfigurasi klien MCP.
Urutan investigasi lebih penting daripada daftar blokir. Jika suatu host mungkin telah terhubung, Pillar menyarankan untuk mempertahankan log klien MCP sebelum membersihkan apa pun, lalu meninjau penyegaran definisi alat dan apa yang dilakukan agen setelah panggilan ketiga; kredensial sebaiknya dirotasi hanya jika bukti lokal mendukung eksposur, yang merupakan kebalikan dari refleks untuk merotasi semuanya saat ada kecurigaan. Konfigurasi server juga mengizinkan telemetri opsional ke WEBHOOK_URL, mengirim beacon pada koneksi, panggilan pertama, dan peristiwa pemicu — detail yang memberikan penyelidikan tempat ketiga untuk diperiksa di luar log klien dan lalu lintas endpoint.
Bagi orang-orang yang membangun klien MCP, rekomendasinya bersifat struktural, dan itulah bagian dari catatan yang memiliki masa berlaku paling panjang:
• Ambil sidik jari definisi alat pada saat persetujuan dan bandingkan pada setiap penyegaran, alih-alih memercayai nama dan repositori server.
Perlakukan perubahan definisi pada server yang sudah disetujui sebagai peristiwa keamanan yang dilihat dan disetujui ulang oleh operator, bukan sebagai perubahan metadata rutin yang ditelan secara diam-diam.
• Tegakkan operasi sensitif — akses kredensial, eksekusi kode, email keluar, penulisan repositori — melalui kebijakan, bukan melalui deskripsi yang disediakan server.
Butir ketiga itulah yang membuat Deadbugz menjadi sebuah catatan, bukan sekadar keanehan. Setiap kontrol di atas mengasumsikan bahwa agen dapat dibujuk untuk melakukan sesuatu oleh teks yang dilampirkan server pada sebuah alat, dan bahwa teks tersebut dapat berubah setelah keputusan kepercayaan dibuat. Pillar menempatkan kampanye ini dalam rangkaian yang mencakup serangan sleeper MCP Invariant Labs tahun 2025, paket postmark-mcp palsu, dan paket MCP yang didokumentasikan Koi yang dipersenjatai melalui pembaruan — semuanya merupakan preseden bagi teknik tersebut, yang dikutip Pillar untuk itu dan bukan sebagai bukti tentang pengiriman ini.
Mengapa gate lebih penting daripada jumlah korban
Kampanye dengan 23 upaya pengiriman, tanpa penggabungan dan tanpa korban terkonfirmasi, mudah diklasifikasikan sebagai upaya yang gagal dan ditinggalkan. Alasan kampanye ini layak masuk arsip dengan tingkat keparahan tinggi adalah karena penghindarannya tidak bergantung pada keberhasilan pengiriman dalam skala besar. Penghindaran itu bergantung pada properti yang dimiliki sebagian besar penerapan MCP saat ini: persetujuan terjadi sekali, saat pemasangan, dan definisi yang telah disetujui diasumsikan sebagai definisi yang akan disajikan. Deadbugz menjaga asumsi itu tetap utuh selama tiga panggilan, lalu mematahkannya.
Perbaikannya bukan patch untuk server tertentu, dan tidak ada CVE yang perlu dilacak. Intinya adalah bahwa "disetujui" harus menjadi kondisi berkelanjutan dengan perbandingan di baliknya — yaitu perubahan dalam cara klien dan operatornya berperilaku, bukan perubahan dalam apa yang dicari pemindai. Apakah ada orang yang benar-benar menjalankan server tersebut pada Agustus masih belum diketahui; berdasarkan catatan yang ada saat ini, mekanismenya adalah temuannya.
