Pengantar Insiden
Seorang peneliti keamanan mengungkapkan kerentanan memori di decoder Brotli milik Google yang kini memengaruhi beragam aplikasi, termasuk Node.js, Bun, paket Python Brotli dan brotlicffi, serta proxy Envoy yang diatur untuk mengekstrak data Brotli. Kerentanan ini, yang telah diberi kode CVE-2026-111497, memungkinkan penyerang mengirimkan data terkompresi yang dirancang khusus untuk menimpa batas buffer, sehingga memicu overwrite memori dan potensi eksekusi kode berbahaya.
Detail Teknis Ancaman
Brotli, algoritma kompresi yang banyak dipakai untuk mengurangi ukuran data web, mengimplementasikan buffer statis untuk menyimpan output decompression. Kerentanan terjadi karena tidak ada validasi panjang output yang cukup; ketika data terkompresi berukuran lebih besar dari buffer yang dialokasikan, penulis buffer dapat menulis di luar batas. Ini menghasilkan kondisi buffer overflow yang dapat memodifikasi struktur kontrol program, seperti pointer fungsi atau return address. Pada implementasi Node.js, Bun, dan beberapa paket Python, titik rentan berada pada fungsi brotli_decompress yang dipanggil secara langsung oleh aplikasi ketika memproses konten yang dikompresi.
Dampak Terhadap Sistem
Kerentanan ini berpotensi menimbulkan Remote Code Execution (RCE) pada sistem yang mengeksekusi data Brotli tanpa validasi tambahan. Bagi pengembang Node.js dan Bun, serangan dapat mengakibatkan eksekusi kode arbitrary di lingkungan runtime, membuka akses penuh ke server. Pada paket Python, serangan dapat memengaruhi aplikasi web yang menggunakan Brotli untuk menyajikan konten statis, sehingga memungkinkan penyerang menginfeksi proses Python. Proxy Envoy yang mengekstrak Brotli juga rentan, sehingga jaringan yang menggunakan Envoy dapat menjadi titik masuk bagi penyerang untuk mengeksekusi kode di server backend.
Rekomendasi Mitigasi
- Segera perbarui semua dependensi ke versi terbaru yang telah memperbaiki kerentanan: Node.js 20.15+, Bun 1.1.12+, paket Python
brotli1.0.9+ danbrotlicffi1.0.8+, serta Envoy 1.28+. - Jika pembaruan tidak memungkinkan, terapkan patch sementara dengan menambahkan validasi ukuran output sebelum memanggil decoder atau menggunakan library alternatif yang telah diuji keamanan.
- Aktifkan mekanisme mitigasi memori seperti Address Space Layout Randomization (ASLR) dan Data Execution Prevention (DEP) pada semua server yang menjalankan aplikasi terkait.
- Monitor log sistem untuk pola anomali yang mencurigakan, seperti panggilan fungsi decompress yang gagal atau crash aplikasi yang tidak biasa.
- Gunakan firewall aplikasi web (WAF) dan sistem deteksi intrusi (IDS) untuk memblokir payload Brotli yang mencurigakan.
Dengan langkah-langkah ini, organisasi dapat meminimalkan risiko eksploitasi dan menjaga integritas serta ketersediaan layanan mereka.
Sumber Referensi: Artikel ini disadur secara otomatis dari publikasi asli. Untuk membaca selengkapnya, silakan kunjungi Brotli Decoder Flaw Behind Node.js RCE Also Affects Bun, Python and Other Widely Used Software.