David Barksdale dari Exodus Intelligence mempublikasikan analisis teknis CVE-2026-2291, kerentanan heap buffer overflow kritis pada dnsmasq yang memungkinkan eksekusi kode jarak jauh melalui respons DNS berbahaya. Kerentanan ini mempengaruhi seluruh versi dnsmasq dari 2.73 hingga 2.89 selama kurun waktu 11 tahun dan tersebar di jutaan perangkat embedded serta router di seluruh dunia.
APA YANG TERJADI?
Dnsmasq adalah server DNS dan DHCP ringan yang sangat populer pada sistem embedded, router, distribusi Linux, dan platform virtualisasi. Kerentanan CVE-2026-2291 diperkenalkan pada April 2015 melalui commit yang dimaksudkan untuk menangani domain name dengan NULL bytes dalam mode DNSSEC. Implementasi tersebut menggunakan fungsi strcpy() yang tidak aman saat menyalin nama domain ke buffer internal bernama bigname dengan ukuran tetap 1.025 byte. Ketika dnsmasq memproses respons DNS dari server upstream yang berisi rantai CNAME dengan nama domain yang sangat panjang, terjadi penulisan melebihi batas buffer yang merusak metadata heap. Penyerang yang berada pada posisi man-in-the-middle atau yang mampu memalsukan respons DNS bisa memanfaatkan kondisi ini untuk mencapai kendali penuh atas instruction pointer dan mengeksekusi shellcode dengan privilege root.
DETAIL TEKNIS
Root cause berada pada fungsi really_insert() di src/cache.c. Kode memeriksa apakah nama domain lebih panjang dari SMALLDNAME-1 (biasanya 255 byte) untuk menentukan apakah perlu mengalokasikan buffer bigname. Namun, pada saat menyalin nama domain ke cache entry melalui cache_get_name(), operasi strcpy() dilakukan tanpa pemeriksaan batas ukuran. Penyerang bisa membuat nama domain yang melewati pemeriksaan awal namun tetap meluap saat disalin ke buffer 1.025 byte. Eksploitasi dilakukan dalam tiga tahap: alloc.me untuk mengalokasikan buffer bigname pada free list, overflow.me untuk merusak metadata heap pada buffer yang bersebelahan, dan overwrite.me untuk menulis arbitrary pointer ke lokasi yang dikontrol penyerang. Tahap akhir menimpa function pointer ke simbol VDSO (Virtual Dynamic Shared Object) yang selalu tersedia di memori, sehingga penyerang bisa mengontrol instruction pointer tanpa perlu mengetahui base address library melalui bypass ASLR parsial.
DAMPAK TERHADAP INDONESIA
Dnsmasq digunakan secara luas pada router SOHO, perangkat IoT, hotspot publik, dan jaringan lokal di Indonesia. Banyak ISP kecil dan menengah menggunakan distribusi berbasis OpenWRT dengan dnsmasq sebagai resolver DNS dan server DHCP bawaan. Jutaan perangkat jaringan rumah tangga dan kantor kecil di Indonesia kemungkinan besar menjalankan versi dnsmasq yang rentan karena firmware embedded jarang diperbarui oleh pengguna akhir. Kerentanan ini memungkinkan penyerang jarak jauh mengkompromisi gateway internet pertama sebuah jaringan, membuka jalan untuk pembuatan botnet, DNS hijacking, pivoting ke perangkat internal, serta pencurian kredensial dan data sensitif pengguna.
REKOMENDASI MITIGASI
Administrator jaringan harus segera memperbarui dnsmasq ke versi 2.90 atau lebih baru yang telah memperbaiki kerentanan ini. Untuk perangkat embedded dan router, vendor harus didorong untuk merilis update firmware secepatnya. Implementasi DNSSEC validation harus dipertimbangkan untuk memverifikasi respons DNS secara kriptografis. Segmentasi jaringan yang mengisolasi infrastruktur DNS dari jaringan yang tidak tepercaya sangat direkomendasikan. Rate limiting pada query DNS upstream bisa membantu mendeteksi upaya eksploitasi massal. Monitoring proses dnsmasq untuk crash tak terduga dan konsumsi resource yang anomali juga penting sebagai indikator aktivitas eksploitasi.
Analisa Retasan
CVE-2026-2291 adalah contoh klasik dari technical debt dalam C codebase yang berusia lama. Penggunaan strcpy() pada data yang berasal dari jaringan eksternal merupakan pelanggaran prinsip keamanan paling fundamental yang sudah dikenal luas selama beberapa dekade. Buffer bigname yang dialokasikan dengan panjang 1.025 byte namun disalin tanpa batas menunjukkan bahwa code review keamanan tidak pernah dilakukan pada path DNSSEC yang ditambahkan pada tahun 2015. Fenomena ini sangat umum pada software open-source infrastruktur: fitur baru ditambahkan untuk menangani edge case tanpa security review menyeluruh, meninggalkan kerentanan yang tidak terdeteksi selama 11 tahun. Kurun waktu tersebut lebih dari cukup untuk memastikan bahwa jutaan perangkat embedded di seluruh dunia akan sulit atau bahkan tidak mungkin di-patch sepenuhnya.
Dari perspektif teknik eksploitasi, penggunaan CNAME chain untuk heap grooming adalah pendekatan yang telah matang dalam exploit development modern. Penyerang menggunakan alloc.me untuk mempersiapkan free list, overflow.me untuk merusak metadata heap pada buffer yang bersebelahan, dan overwrite.me untuk menulis arbitrary pointer ke lokasi yang dikontrol. Target akhir pada VDSO menunjukkan bahwa penyerang menggunakan mapped library yang selalu ada di memori untuk melakukan bypass ASLR. Meskipun mitigasi modern seperti ASLR dan DEP diterapkan, primitive write-what-where melalui heap metadata corruption sering kali cukup untuk mengatasi kedua mitigasi tersebut dengan teknik yang sudah mapan. Fakta bahwa buffer yang ter-overflow tidak pernah dibebaskan mencegah deteksi heap corruption pada beberapa implementasi libc.
Bagi Indonesia, dampak kerentanan dnsmasq sangat besar karena perangkat ini sering menjadi gateway internet utama di rumah tangga, kantor kecil, dan tempat umum. Berbeda dengan server Windows yang biasanya dikelola oleh tim IT dengan jadwal patching, perangkat embedded sering diinstal dan dilupakan tanpa mekanisme update otomatis. BSSN perlu segera mengeluarkan advisory untuk ISP, distributor perangkat jaringan, dan pengguna akhir agar segera memeriksa versi dnsmasq pada perangkat mereka. Tanpa intervensi koordinasi dari regulator dan vendor, perangkat ini akan tetap rentan selama bertahun-tahun ke depan, menjadi bagian dari permukaan serangan botnet IoT yang terus meluas dan berpotensi digunakan dalam serangan skala besar terhadap infrastruktur kritis nasional.
Sumber: David Barksdale, Exodus Intelligence
