The Hacker News

Celah Kritis Pre-Auth MongoDB (CVE-2026-118383) Picu Kerusakan Server Saat Failover

Sebuah kerentanan tingkat kritis pada MongoDB Server memungkinkan pihak penyerang tanpa autentikasi mengirimkan sepasang permintaan khusus yang memicu berhentinya server pangkalan data secara mendadak. Kerusakan fatal ini baru terjadi jika server sasaran di kemudian hari terpilih menjadi server utama ketika masih tertinggal dalam menerima pembaruan data terkini.

Pihak MongoDB, selaku pengembang perangkat lunak basis data tersebut, telah merilis serangkaian versi perbaikan resmi pada awal pekan ini.

Perangkat yang rentan terhadap ancaman ini merupakan anggota dari replika set, yaitu sekelompok server MongoDB yang bertugas menduplikasi data yang identik. Satu anggota bertindak sebagai server primer yang menangani seluruh operasi penulisan baru, sedangkan anggota lain mereplikasi perubahan tersebut. Apabila server primer mengalami gangguan teknis atau padam, anggota-anggota lain segera menyelenggarakan pemilihan internal untuk menetapkan penggantinya.

Para analis keamanan dari Datadog Security Labs berhasil mereproduksi malfungsi ini di fasilitas pengujian mereka dan mengumumkan temuannya kepada publik kemarin. Pada rilis yang terdampak, pengaktifan fitur autentikasi terbukti tidak sanggup membendung dua permintaan berbahaya tersebut. Pihak penyerang tidak dapat mengatur agar server sasaran tertinggal sinkronisasi, memaksanya memenangkan proses pemilihan, ataupun memantau terjadinya kedua kondisi itu, ungkap para peneliti.

Celah keamanan yang diidentifikasi dengan kode CVE-2026-118383 ini berakar pada masalah use-after-free, di mana sistem membaca area memori yang telah dialokasikan ulang atau dibersihkan. MongoDB menetapkan skor keparahan sebesar 9,5 dari skala maksimal 10 menurut standar metrik CVSS 4.0. Perusahaan mengaku mendeteksi kelemahan ini secara mandiri dan menegaskan "belum mengetahui adanya upaya eksploitasi aktif terhadap kerentanan ini di lapangan."

Komponen yang terpapar risiko mencakup anggota server shard serta server konfigurasi di dalam arsitektur sharded cluster. Sebaliknya, instans mongod mandiri yang beroperasi tunggal di luar konfigurasi replika set tidak terpengaruh oleh isu ini.

Masing-masing cabang pengembangan yang bermasalah telah memperoleh pembaruan tambalan khusus, sebagaimana dipublikasikan pada log CVE. Setiap versi terdahulu di sepanjang riwayat rilis cabang bersangkutan dinyatakan rentan, terhitung sejak versi perdana cabang itu diterbitkan.

Seluruh klaster terkelola MongoDB Atlas akan diperbarui secara otomatis selama rentang jadwal pemeliharaan rutin, jelas pengembang dalam maklumat keamanannya. Pelanggan yang menunda jadwal pemeliharaan mandiri diimbau untuk segera menerapkan peningkatan versi tanpa menunggu waktu lama.

Bagi instalasi server mandiri (self-managed), pembaruan keamanan wajib diaplikasikan secara merata ke seluruh simpul anggota replika set. Seusai proses peremajaan sistem tuntas, periksa ulang nomor versi yang aktif pada tiap anggota, tidak terkecuali instans di dalam kontainer serta mesin yang sempat padam saat pemeliharaan berlangsung.

Lini cabang 8.2 memang tidak tercantum secara eksplisit dalam daftar rilis rentan resmi, dengan versi terbarunya tercatat 8.2.12. Kendati demikian, sebuah kode pembuktian konsep (proof of concept) di GitHub memperlihatkan bahwa varian 8.2.12 tetap memperlihatkan anomali ini saat diuji coba di lab dengan konfigurasi eksperimental khusus pengujian.

Berdasarkan kalender siklus hidup resmi perusahaan, lini cabang 8.2 telah mencapai masa purnatugas (end of life) per tanggal 31 Juli lalu. Melewati batas masa aktif tersebut, sistem bersangkutan tidak lagi memperoleh pasokan dukungan pembaruan, termasuk pembaruan keamanan krusial.

Selama proses pembaruan menyeluruh belum terlaksana pada seluruh anggota klaster, tim peneliti menganjurkan pengelola sistem membatasi aksesibilitas jaringan ke server basis data secara ketat, hanya bagi entitas yang benar-benar membutuhkan koneksi. Tindakan preventif ini memang mempersempit peluang masuknya kedua permintaan eksploitasi tersebut, kendati tidak menghapus cacat kode dasarnya.

Ketika sebuah node sukses memenangkan proses pemilihan server primer, ia terlebih dahulu mengejar ketertinggalan log dengan mengeksekusi operasi penulisan yang terlewat sebelum mulai menerima instruksi penulisan anyar. Berdasarkan uraian bedah teknis Datadog, letak kerusakan ini persis berada pada prosedur pembersihan yang dieksekusi tepat saat fase penyelarasan tersebut tuntas.

Dua paket permintaan itu sejatinya berupa perintah ping standar yang memuat nilai parameter readConcern.afterOpTime. Masing-masing perintah menginstruksikan server menunggu hingga proses replikasi menyentuh target tertentu, lalu server mencatatkan status antrean notifikasi tertunda yang disebut waiter.

Penanaman waiter semata sebenarnya tidak langsung merusak kinerja server. Objek penantian ini bersifat permanen tanpa batas waktu kedaluwarsa, tetap tersimpan rapi sampai anggota bersangkutan direstart, dipaksa melakukan rollback, atau diturunkan jabatannya dari status primer.

Insiden kerusakan fatal menuntut agar anggota penerima permintaan tadi memenangkan pemilihan kepemimpinan berikutnya, kendati riwayat datanya masih tertinggal dibanding anggota lainnya. Manakala proses penyelarasan berakhir, mekanisme pembersihan terpanggil dua kali secara ganda sehingga menggunakan memori yang sudah dilepas, memicu crash instan pada server primer baru sebelum sempat melayani instruksi tulis apa pun. Begitu seluruh prasyarat ini terpenuhi, kehancuran sistem berlangsung mutlak tanpa bergantung pada perlombaan waktu (race condition), jelas para periset.

Dalam simulasi laboratorium, tim periset sengaja membuat anggota tertinggal dan memicu proses failover paksa menggunakan kewenangan akun administrator untuk menjeda serta mematikan proses mongod. Hanya dua permintaan awal yang dikirimkan menggunakan koneksi klien tanpa kredensial otorisasi, dan klien tersebut sama sekali tidak punya hak menulis ke basis data.

Saat diuji pada rilis 8.0.34, node tersebut ambruk seketika akibat segmentation fault, mengakibatkan klaster pengujian kehilangan server primer sepenuhnya. Namun pada lingkungan operasional lain, replika set mungkin saja berhasil menyelenggarakan pemilihan lanjutan demi menjaga kontinuitas layanan.

Pada edisi tambalan 8.0.37, sistem menolak mentah-mentah kedua permintaan berbahaya tersebut karena ketiadaan otorisasi yang sah, sehingga server tetap beroperasi normal. Bagian dari tambalan ini secara tegas mengunci pemakaian parameter readConcern.afterOpTime khusus bagi pengguna internal berstatus sistem.

MongoDB turut mengingatkan bahwa celah ini secara teoretis dapat membuka peluang eksekusi kode acak di dalam proses server pada situasi tertentu. Meski demikian, tim peneliti menegaskan bahwa "kami tidak mencapai eksekusi kode" selama serangkaian pengujian terkontrol. Temuan mereka pun belum dapat memetakan seberapa konsisten keberhasilan serangan ini bila dilancarkan pada ragam arsitektur infrastruktur lain.

Kode pembuktian konsep yang beredar mampu memicu ulang galat ini pada lingkungan replika set laboratorium, menurut klaim penyusunnya. Kinerja andal eksploitasi tersebut mensyaratkan parameter eksperimental pengujian yang mustahil diaktifkan oleh peretas dari jarak jauh. Dampak nyata yang terdokumentasi sebatas matinya sistem atau kerusakan integritas memori, tanpa adanya bukti lanjutan mengenai eksekusi kode arbitrer.

Komponen perbaikan kedua berfungsi mencegah rutinitas pembersihan terpanggil berulang kali kendati objek waiter telah telanjur tertanam di dalam antrean sistem, jelas para analis. Bagian pertahanan spesifik ini tidak diuji mandiri oleh pihak Datadog.

Dalam pengujian laboratorium berbasis pembuktian konsep tanpa perlindungan autentikasi, varian 8.0.37 yang telah diperbaiki tetap menerima pendaftaran waiter, namun berhasil membatasi pelaksanaan prosedur pembersihan agar berlangsung tepat satu kali saja.

Guna mendeteksi jejak infiltrasi waiter atau indikasi kerusakan, administrator disarankan memeriksa log terstruktur server secara teliti untuk mengidentifikasi pola kejanggalan seperti yang didokumentasikan tim peneliti pada uji versi rentan:

Peristiwa suksesi normal atau penyelesaian sinkronisasi reguler yang berdiri sendiri bukanlah pertanda keberadaan eksploitasi ini. Paket permintaan tersebut bisa saja ditransmisikan jauh sebelum insiden failover meletus, sehingga penelusuran wajib mencakup arsip log historis pada mesin yang sama.

Apakah parameter permintaan tersebut tercatat secara mendetail di log sangat bergantung pada pengaturan audit sistem, dan ruas informasi attr.remote bisa saja merekam alamat loopback lokal, bukan identitas alamat IP asli milik penyerang.