Node.js Diperbaiki Darurat: Celah Brotli Berbahaya Bisa Eksekusi Kode Jarak Jauh

Foto: Istimewa

Node.js Diperbaiki Darurat: Celah Brotli Berbahaya Bisa Eksekusi Kode Jarak Jauh

Kalimantan Update – 23 Oktober 2026 | Dunia pengembangan perangkat lunak kembali diguncang. Pada 21 Oktober 2026, tim proyek node js merilis pembaruan keamanan darurat untuk cabang 26.x, 24.x, dan 22.x yang menambal sepuluh kerentanan sekaligus, empat di antaranya berkategori risiko tinggi. Perbaikan ini menjadi sorotan karena salah satu celah, CVE-2026-111497, merupakan kelemahan out-of-bounds write pada dekoder Brotli yang menurut laporan resmi dapat berujung pada eksekusi kode jarak jauh atau remote code execution (RCE).

Brotli sendiri adalah format kompresi milik Google yang dirancang memperkecil respons web lebih efisien dibanding gzip. Node js menyertakan pustaka Brotli tersebut di dalam modul zlib bawaannya. Menurut penjelasan teknis yang beredar, perbaikan dilakukan dengan mengambil commit upstream yang membuat dekoder langsung gagal saat menemukan data cacat, khususnya ketika sebuah block switch muncul pada stream yang hanya mendeklarasikan satu tipe blok. Tim keamanan tidak mengungkap detail eksploitasi maupun input pemicu kerentanan tersebut.

Kerentanan ini dilaporkan Matteo Collina, ketua Technical Steering Committee node js sekaligus salah satu pendiri Platformatic, sementara implementasi perbaikannya dikerjakan Antoine du Hamel. Hingga kini belum ada bukti konsep (proof-of-concept) publik yang dikonfirmasi, dan tim node js tidak melaporkan adanya eksploitasi di alam liar. Meski demikian, potensi dampaknya dinilai luas.

Setiap proses node js yang mendekompresi data Brotli dari sumber tak tepercaya berpotensi rentan. Itu mencakup server yang menangani permintaan HTTP dengan header Accept-Encoding: br, aplikasi yang memakai fetch() bawaan, serta middleware seperti body-parser yang mendekompresi isi permintaan. Vercel bahkan menerbitkan buletin keamanan yang menyebut bahwa proses node js yang mendekode data Brotli dari penyerang dapat dibuat membocorkan memori atau menjalankan kode arbitrer.

Cabang Versi Rentan Versi Perbaikan
Node.js 22.x Sebelum patch 22.23.4
Node.js 24.x Sebelum patch 24.22.1
Node.js 26.x Sebelum patch 26.12.1

Perlu dicatat, Node.js 20 dan versi sebelumnya sudah mencapai akhir masa dukungan (end-of-life) sehingga tidak akan menerima perbaikan. Ada pula kasus khusus: sistem yang memasang Node.js melalui paket Debian atau Ubuntu menautkan ke libbrotli sistem, bukan salinan bawaan, sehingga perbaikan harus datang lewat paket brotli distribusi tersebut. Hingga 21 Oktober, pelacak keamanan Debian belum mencantumkan entri untuk CVE ini.

Selain Brotli, rilis yang sama menambal tiga bug risiko tinggi lain yang semuanya menyangkut verifikasi nama host sertifikat TLS. CVE-2026-105483 memungkinkan bypass ketika alamat IP memakai digit full-width; CVE-2026-106069 terpicu saat sebuah host secara longgar ter-resolve ke sebuah IP; dan CVE-2026-105482 memotong nama DNS yang mengandung karakter NUL. Pembaruan ini juga tidak lagi mempercayai rantai sertifikat yang memuat kunci intermediate CA eMudhra yang dikompromikan pekan lalu. Tiga isu tingkat menengah dan tiga tingkat rendah melengkapi rilis, mencakup urutan respons keep-alive HTTP, cache entropi dalam snapshot startup, serta pemeriksaan izin sistem berkas.

Menariknya, insiden ini bukan satu-satunya. Dalam kurun kurang dari 24 jam sejak malam 21 Oktober hingga 22 Oktober, empat peristiwa keamanan independen meletus di empat lapisan berbeda: PHP, node js, rantai kepercayaan sertifikat HTTPS, dan platform deploy cloud Railway. PHP bahkan diterpa dua kerentanan yang dijuluki PHP2Shell dengan skor CVSS v4.0 mencapai 9.2, memungkinkan eksekusi kode jarak jauh tanpa autentikasi. Sebagian besar temuan itu diidentifikasi lewat bantuan kecerdasan buatan dalam kerangka program Patch the Planet.

Pada jalur paralel, paket decompress milik node js juga memiliki masalah path traversal (CVE-2026-101894, CVSS 9.1). Penyerang dapat menanam rantai symlink sehingga proses ekstraksi membaca dan menulis berkas di luar direktori keluaran, lalu menimpa skrip startup atau berkas konfigurasi, yang bermuara pada eksekusi kode jarak jauh. Paket @xhmikosr/decompress telah diperbaiki pada versi 10.2.2 dan 11.1.4, tetapi paket decompress yang sudah tak dirawat hingga versi 4.2.1 belum ditambal. Artinya, banyak proyek dan rantai alat yang bergantung pada versi lama tetap terpapar meski runtime node js sudah diperbarui.

Bagi tim operasional, rekomendasinya cukup tegas: inventarisasi layanan yang menerima atau memproses konten Brotli, prioritaskan yang berpotensi mendekode data kendali pihak ketiga, lalu segera perbarui. Jangan lupa memeriksa sisi tersembunyi dari proses deploy, seperti image kontainer, runner CI, dan lingkungan lokal, karena versi lama di salah satu titik itu bisa memunculkan kembali masalah dalam rantai pasok perangkat lunak.

Sebagai penutup, peristiwa ini menjadi pengingat bahwa pembaruan rutin bukan sekadar formalitas. Celah pada dekoder kompresi dan verifikasi sertifikat membuktikan bahwa komponen yang jarang diperhatikan pun bisa menjadi pintu masuk serius. Pengguna node js disarankan segera beralih ke versi 22.23.4, 24.22.1, atau 26.12.1, memastikan dependensi decompress ikut diperbarui, serta memverifikasi bahwa pustaka Brotli yang dipakai benar-benar memuat perbaikan upstream. Kewaspadaan berlapis adalah pertahanan terbaik di tengah gelombang kerentanan yang kian cepat menyebar.