Celah Memori Kritis pada Dekoder Brotli Mengancam Node.js, Bun, dan Python

Sebuah kelemahan berupa kerusakan memori pada pustaka dekoder Brotli milik Google bersarang di dalam deretan aplikasi yang mengekstrak berkas terkompresi Brotli, termasuk runtime Bun, pustaka Python Brotli dan brotlicffi, serta proksi Envoy yang dikonfigurasi guna mendekompresi format tersebut.

Didaftarkan secara resmi dengan kode identifikasi CVE-2026-111497, celah keamanan ini memungkinkan data terkompresi yang dirancang secara manipulatif untuk menulis melampaui batas akhir buffer penampung sehingga merusak memori sistem, yang berpotensi memicu kegagalan sistem mendadak, kebocoran memori, hingga pengeksekusian kode berbahaya secara sewenang-wenang oleh pihak penyerang luar.

Para analis keamanan dari Imperva telah memperlihatkan bahwa kode tak dikenal memang dapat dijalankan pada salah satu build Node.js yang belum menerima tambalan pembaruan. Kendati demikian, pembuktian serupa belum diperagakan pada ekosistem perangkat lunak lain, serta belum ditemukan laporan terkait aksi eksploitasi nyata di lapangan terbuka.

Kerentanan genting ini pertama kali diumumkan ke ranah publik pada tanggal 21 Oktober, momen di mana tim pengembang Node.js serta Google mendistribusikan berkas perbaikan mereka secara bersamaan, disusul oleh tambalan perlindungan tambahan untuk produk-produk lain secara berkala sejak pengumuman tersebut dibuat. Berhubung titik kesalahan fatal ini berakar pada basis kode dekoder milik Google dan tiap-tiap program mendistribusikan salinan pustaka itu masing-masing, maka setiap pengelola wajib memperbarui salinan dependensi internal mereka secara mandiri.

Brotli sendiri merupakan algoritma kompresi data ciptaan Google yang dimanfaatkan secara luas di seluruh penjuru internet untuk mengecilkan ukuran muatan halaman web maupun pertukaran lalu lintas data lainnya. Permasalahan ini berada tepat di dalam struktur kode bahasa C yang mengekstrak arus data Brotli, sehingga ancaman tersebut langsung merembes ke semua perangkat lunak yang menggunakan ulang basis kode yang sama, mulai dari lingkungan runtime bahasa pemrograman, sistem proksi, hingga deretan pustaka ekosistem Python.

Perangkat Lunak Mana Saja yang Terdampak

Suatu piranti lunak hanya akan berada dalam kondisi rawan apabila sistem tersebut memproses serta mendekode data kompresi Brotli yang dikendalikan atau dikirimkan oleh entitas asing yang tidak terpercaya. Pada ekosistem Node.js dan Bun, situasi berbahaya ini tercipta saat fitur bawaan fetch() membaca respons masuk yang memiliki tajuk Content-Encoding: br, atau ketika skrip pengolah muatan permintaan seperti Express 5 dan body-parser 2 mengekstrak unggahan berbasis Brotli. Sebuah server HTTP Node.js murni pada dasarnya tidak akan mendekode muatan permintaan data secara otomatis tanpa pustaka perantara.

Di sisi lain, platform Envoy dan Istio hanya rentan terkena imbas apabila opsi dekompresi data Brotli diaktifkan, semisal lewat penerapan modul filter Envoy. Apabila pengaturan dekompresi tersebut dinonaktifkan sepenuhnya, celah keamanan berbahaya ini tidak akan dapat dipicu sama sekali.

Dalam ranah lingkungan Python, potensi bahaya muncul seketika jika paket dependensi Brotli maupun brotlicffi terpasang di dalam lingkungan server. Begitu salah satu dari paket pustaka ini berada di sistem, berbagai pustaka klien HTTP terkemuka seperti requests, urllib3, httpx, serta aiohttp akan segera mendekode respons Brotli secara otomatis dari balik layar, sehingga suatu aplikasi web dapat langsung terpapar risiko tinggi meski skrip internal aplikasi tidak pernah mengimpor modul Brotli secara eksplisit.

Penggunaan sistem pengaman firewall aplikasi web (WAF) hanya mampu menawarkan mitigasi hingga batas tertentu saja. Pihak Vercel, yang langsung menerapkan rangkaian aturan filter firewall pada hari pengumuman kerentanan, menyatakan bahwa penyaringan tersebut tidak dapat menjangkau atau melindungi respons yang ditarik oleh fungsi komputasi dari server eksternal lain. Untuk jalur pertukaran lalu lintas semacam itu, satu-satunya langkah penutupan celah yang efektif hanyalah memperbarui runtime inti atau modul pustaka terkait secara langsung.

Seberapa jauh eksploitasi kerentanan ini dapat dimanfaatkan sepenuhnya bergantung pada jenis perangkat lunak yang ditargetkan. Tim Keamanan Imperva Red Team, yang menamai penelitian pembuktian konsep mereka sebagai Node2Shell, berhasil menjalankan eksekusi kode buatan penyerang pada build asli Node.js versi 24.22.0 untuk sistem operasi Linux berarsitektur ARM64, di mana muatan eksploit dikirimkan melalui penerimaan respons unduhan maupun muatan permintaan HTTP pada framework Express. Keberhasilan skrip eksploitasi tersebut membutuhkan beberapa kali percobaan berulang, berkas eksploit tidak disebarluaskan secara publik, serta belum diuji coba pada varian build perangkat keras lainnya.

OpenAI, melalui tim Codex Security yang menjadi pihak pertama yang melaporkan temuan cacat sistem ini, mendeskripsikan kerentanan ini sebagai celah yang memungkinkan eksekusi kode jarak jauh tanpa autentikasi (RCE) di dalam Brotli, sembari mencantumkan Node.js, Bun, dan Envoy sebagai komponen piranti lunak yang terdampak. Berdasarkan pemaparan resmi mereka, serangan melalui celah memori ini mampu bekerja dari kedua arah komunikasi jaringan.

Hingga detik ini, belum ada insiden serangan siber aktif di dunia nyata yang dilaporkan secara resmi. Dokumen penilaian badan siber federal CISA tertanggal 23 Oktober mengkategorikan eksploitasi aktif dengan status "none" serta indikasi otomatisasi pada tanda "no," sementara analis dari Red Hat menegaskan ketiadaan bukti konsep publik yang stabil dan andal untuk mengeksekusi kode peretas.

Tingkat keparahan ancaman dinilai bervariasi bergantung pada lembaga yang menerbitkan skor. Google, sebagai pihak yang mendaftarkan identitas CVE, menyematkan nilai 9.2 berskala CVSS 4.0 yang masuk dalam kategori kritis. Pengembang Node.js menilai risiko ini pada tingkat tinggi, sementara Red Hat memberikan evaluasi skor 8.1 atau status penting.

Upaya penambalan ini menyimpan catatan riwayat yang cukup unik. Modifikasi perbaikan kode yang menuntaskan cacat tersebut sebenarnya telah disematkan ke dalam repositori sumber Brotli sejak 27 Februari, tetapi tidak ada satupun rilis versi stabil resmi Brotli yang mengangkut pembaruan tersebut hingga tiba tanggal 21 Oktober. OpenAI mengonfirmasi bahwa akar penyebab masalah sebenarnya sudah dibereskan di dalam kode sumber Brotli sejak Februari, tetapi pada masa itu belum disadari bahwa kelemahan ini dapat memicu kerentanan keamanan sistemik dan belum ada perilisan versi Brotli yang lebih baru sesudah itu.

Pihak Node.js menyampaikan apresiasi kepada Khai Tran serta Sylvie Mayer dari divisi Codex Security OpenAI atas laporan temuan celah keamanan tersebut, sekaligus mengucapkan terima kasih kepada para pemelihara proyek inti Matteo Collina dan Antoine du Hamel atas penulisan skrip perbaikan tambalan.

Para pengelola sistem sangat disarankan untuk segera memperbarui perangkat lunak mereka ke versi bersih, kemudian melakukan proses mulai ulang layanan serta membangun ulang seluruh citra kontainer aplikasi, mengingat proses sistem yang sedang berjalan akan terus mempertahankan kode dekoder lawas di memori sampai proses itu direstart secara utuh.

Bagi pengelola infrastruktur yang belum berada dalam posisi untuk memasang pembaruan versi terkini, hentikan segera proses pendekodean berkas kompresi Brotli yang bersource dari entitas asing yang tidak terverifikasi. Halaman laporan rilis resmi OpenAI beserta tim analis keamanan Aikido merekomendasikan langkah mitigasi pencegahan.

Tindakan menghapus parameter br dari tajuk permintaan Accept-Encoding semata tidak akan menyelesaikan persoalan secara tuntas, sebab pihak server pengirim tetap berpeluang mengirimkan paket data berformat Brotli terlepas dari preferensi yang diminta oleh sistem klien. Untuk platform Node.js, saat ini belum ada solusi penanganan sementara yang dirilis ke khalayak, sehingga mengunduh pembaruan runtime resmi menjadi satu-satunya jalan keluar mutlak.

Pembaruan paket tingkat sistem operasi didistribusikan dalam waktu yang berbeda-beda. Pihak distribusi Debian telah menambal pustaka paket brotli untuk rilis Debian 13 (trixie) pada tanggal 23 Oktober melalui kehadiran versi 1.1.0-2+deb13u1. Sebaliknya, repositori Amazon Linux 2023 per tanggal 22 Oktober masih mencatat paket dependensi brotli dan Node.js 24 mereka dalam status menunggu jadwal perilisan tambalan resmi.

Alat pemindai ketergantungan otomatis berpotensi belum sanggup mendeteksi celah kerentanan ini pada pustaka Python secara langsung. Catatan entri CVE sejauh ini hanya merujuk repositori pusat Brotli Google dan belum mengaitkan paket resmi pada PyPI, sementara papan peringatan GitHub yang menjadi sumber pembacaan Dependabot masih mencatat ketiadaan paket terdampak. Entri peringatan khusus bagi kedua paket Python tersebut, yakni nomor PYSEC-2026-4322 serta PYSEC-2026-4323, baru resmi didaftarkan pada 23 Oktober, sehingga para administrator disarankan mengecek nomor versi terpasang secara mandiri guna menjamin keamanan sistem.