KUTIM-CSIRT menyampaikan imbauan mengenai CVE-2026-81094 pada mcp-router CLI, perkakas yang menggabungkan beberapa server Model Context Protocol (MCP) menjadi satu titik akses bagi aplikasi berbasis AI. Kerentanan ini berskor CVSS 9,1 (Critical) menurut CVSS 3.1, atau 9,3 (Critical) menurut CVSS 4.0 — keduanya angka resmi NVD untuk versi metrik yang berbeda, bukan data yang bertentangan.
Advisory ini menandai kategori risiko yang semakin sering muncul seiring diadopsinya perkakas AI di lingkungan kerja: perkakas pengembang yang secara diam-diam mengekspos dirinya ke seluruh jaringan tanpa autentikasi. Perangkat semacam ini biasanya dijalankan di komputer kerja, bukan di server yang diawasi, sehingga keberadaannya kerap luput dari inventaris aset maupun pemindaian keamanan rutin.
Ikhtisar
CVE-2026-81094 adalah kerentanan Missing Authentication for Critical Function (CWE-306) dengan vektor CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N.
Perintah serve pada mcp-router CLI tidak menerapkan autentikasi secara bawaan. Konfigurasi bawaannya mengikat layanan ke seluruh antarmuka jaringan pada porta tetap, tanpa mewajibkan token keamanan. Token hanya diberlakukan apabila operator secara sadar memintanya — sebuah pilihan desain yang membuat konfigurasi paling aman justru bukan konfigurasi bawaan.
Dampak
- Siapa pun yang dapat menjangkau porta tersebut melalui jaringan dapat langsung mengakses aggregator MCP tanpa hambatan autentikasi apa pun.
- Yang terekspos bukan hanya aggregator itu sendiri, melainkan seluruh server MCP yang dikelolanya beserta kemampuan dan data yang mereka sediakan.
- Server MCP kerap memegang kredensial atau akses ke sistem lain — repositori kode, basis data, layanan berkas, kotak masuk email. Satu aggregator terbuka dapat berarti seluruh akses tersebut ikut terbuka.
- Nilai
A:Npada vektor CVSS 3.1 menunjukkan dampaknya terpusat pada kerahasiaan dan integritas, bukan pada ketersediaan layanan. - Karena pengikatan berlaku pada semua antarmuka, layanan menjadi terjangkau dari jaringan kantor — bahkan dari internet apabila komputer tersebut berada di jaringan tanpa penyaringan yang memadai.
Sistem yang Terdampak
| Produk | Versi Terdampak | Versi Perbaikan |
|---|---|---|
| mcp-router CLI | Semua versi sebelum 0.6.3 | 0.6.3 atau lebih baru |
Detail Teknis
Ketika sebuah layanan jaringan dijalankan, ia harus menentukan alamat mana yang akan didengarkan. Mengikat ke 127.0.0.1 (localhost) membuat layanan hanya dapat dihubungi dari komputer yang sama — pilihan yang tepat bagi perkakas pengembang. Mengikat ke 0.0.0.0 berarti mendengarkan pada seluruh antarmuka jaringan, sehingga layanan dapat dihubungi siapa pun yang berada di jaringan yang sama.
Pada mcp-router CLI versi rentan, berkas apps/cli/src/commands/serve.ts menetapkan nilai bawaan pengikatan ke seluruh antarmuka, sementara pemeriksaan token hanya aktif bila operator menyalakannya. Kombinasi kedua keputusan itulah yang melahirkan kerentanan — masing-masing sendirian mungkin dapat diterima, tetapi bersama-sama keduanya menghasilkan layanan terbuka tanpa autentikasi sebagai perilaku bawaan.
Inilah esensi CWE-306: aplikasi tidak memverifikasi identitas pemohon sebelum mengizinkan akses ke fungsi penting. Prinsip yang dilanggar adalah secure by default — konfigurasi bawaan seharusnya merupakan konfigurasi teraman, dan pelonggaran yang harus dilakukan secara sadar oleh operator, bukan sebaliknya.
Perbaikan diterapkan pada commit 4c4642c dan dirilis sebagai versi 0.6.3.
Rekomendasi
- Perbarui mcp-router CLI ke versi 0.6.3 atau lebih baru pada seluruh komputer kerja dan server yang menggunakannya.
- Batasi akses porta mcp-router menggunakan firewall. Bila perkakas hanya dipakai secara lokal, ikat layanan ke
127.0.0.1saja. - Aktifkan autentikasi token secara eksplisit, jangan mengandalkan konfigurasi bawaan.
- Lakukan inventarisasi perkakas AI dan MCP yang dipasang mandiri oleh staf di komputer kerja. Perangkat lunak yang dipasang di luar prosedur resmi adalah titik buta yang paling sering luput dari pemantauan keamanan.
- Periksa porta yang terbuka pada komputer kerja dan server dinas — misalnya dengan
ss -tlnppada Linux — untuk menemukan layanan yang mendengarkan pada0.0.0.0tanpa alasan yang jelas. - Bila aggregator pernah terekspos, rotasi seluruh kredensial yang dipegang server MCP di belakangnya.
- Terapkan prinsip least privilege pada kredensial yang diberikan kepada server MCP: berikan hanya akses seperlunya, jangan kredensial administratif.