Pengantar

Node.js merilis pembaruan keamanan untuk memperbaiki 10 kerentanan, termasuk celah pada Brotli decoder yang berpotensi memungkinkan penyerang menjalankan kode dari jarak jauh. Pengembang dan administrator server disarankan segera memeriksa versi Node.js yang digunakan.

Node.js Perbaiki 10 Kerentanan Keamanan

Proyek Node.js merilis pembaruan keamanan pada 21 Oktober 2026. Pembaruan ini mencakup tiga jalur rilis yang masih didukung, yaitu Node.js 22.x, 24.x, dan 26.x.

Salah satu kerentanan yang menjadi perhatian adalah CVE-2026-111497, yaitu kelemahan pada komponen Brotli decoder. Menurut laporan keamanan Node.js, celah ini berpotensi memungkinkan Remote Code Execution (RCE), yaitu kondisi ketika penyerang dapat menjalankan kode pada sistem yang terdampak melalui akses jarak jauh.

Kerentanan tersebut dikategorikan memiliki tingkat keparahan tinggi (High). Namun, potensi serangan perlu dipahami secara proporsional. Bukti konsep yang dipublikasikan pada 22 Oktober 2026 berhasil menjalankan kode pada lingkungan pengujian yang sengaja dilemahkan. Pada build Node.js standar, penulis bukti konsep melaporkan kegagalan aplikasi dan pembacaan memori secara terbatas, bukan keberhasilan RCE.

Meski demikian, pengembang tetap perlu memprioritaskan pembaruan karena kerentanan ini berada pada komponen internal yang digunakan untuk memproses data terkompresi. <sup>1</sup>

Apa Itu Brotli Decoder?

Brotli adalah teknologi kompresi data yang digunakan untuk memperkecil ukuran informasi sebelum dikirimkan melalui jaringan. Dengan ukuran data yang lebih kecil, proses pengiriman halaman web dan respons HTTP dapat menjadi lebih efisien.

Agar data yang sudah dikompresi bisa digunakan kembali, aplikasi perlu melakukan proses yang disebut decompression atau dekompresi. Proses inilah yang mengembalikan data ke bentuk aslinya.

Node.js menyediakan dukungan untuk Brotli melalui modul node:zlib. Selain itu, proses dekompresi juga dapat berlangsung secara otomatis ketika aplikasi menggunakan fetch() untuk mengambil respons HTTP yang dikompresi dengan Brotli.

Masalah muncul ketika decoder memproses data yang memiliki struktur tidak valid atau telah dimanipulasi. Jika proses tersebut tidak menangani kondisi tertentu dengan benar, program dapat menulis data ke area memori yang berada di luar batas yang seharusnya.

Kondisi ini dikenal sebagai out-of-bounds write. Dalam situasi tertentu, kelemahan tersebut dapat mengganggu proses aplikasi dan berpotensi dimanfaatkan untuk menjalankan kode berbahaya.

Mengenal CVE-2026-111497

CVE-2026-111497 merupakan identitas resmi untuk kerentanan pada Brotli decoder yang disertakan dalam Node.js.

Berikut beberapa informasi penting mengenai celah tersebut:

  • CVE: CVE-2026-111497.
  • Komponen terdampak: Brotli decoder pada runtime Node.js.
  • Jenis kerentanan: Out-of-bounds write.
  • Tingkat keparahan: High.
  • Potensi dampak: Kerusakan proses, pembacaan sebagian memori, dan kemungkinan eksekusi kode jarak jauh dalam kondisi tertentu.

Kerentanan ini bukan berarti semua aplikasi Node.js otomatis dapat diretas. Risiko bergantung pada versi runtime yang digunakan, bagaimana aplikasi memproses data Brotli, dan apakah penyerang dapat memasukkan data yang dikendalikan olehnya ke jalur pemrosesan tersebut.

Namun, karena kelemahan berada pada komponen runtime, aplikasi dapat terpapar meskipun pengembang tidak menulis kode Brotli sendiri.

Bagaimana Kerentanan Ini Dapat Dimanfaatkan?

Bayangkan sebuah aplikasi web yang menerima data dari pengguna atau mengambil informasi dari server eksternal. Data tersebut kemudian diproses oleh Node.js.

Dalam kondisi tertentu, penyerang dapat mencoba memasukkan data Brotli yang telah dimanipulasi ke dalam jalur pemrosesan tersebut. Ketika decoder memproses data yang tidak valid, kelemahan pada pengelolaan memori berpotensi terpicu.

Secara sederhana, alurnya adalah sebagai berikut:

  1. Aplikasi menerima atau mengambil data terkompresi.
  2. Data yang diterima telah dimanipulasi oleh pihak yang tidak tepercaya.
  3. Node.js menjalankan proses dekompresi Brotli.
  4. Kesalahan penanganan memori dapat menyebabkan proses aplikasi terganggu.
  5. Dalam kondisi tertentu, kelemahan tersebut berpotensi membuka jalan bagi eksekusi kode berbahaya.

Ada beberapa jalur yang perlu diperiksa pengembang. Pertama, penggunaan fungsi dekompresi dari modul node:zlib. Kedua, penggunaan fetch() untuk mengambil respons dari server lain yang menggunakan kompresi Brotli. Ketiga, penggunaan framework atau pustaka yang melakukan dekompresi secara otomatis.

Artinya, pengembang tidak cukup hanya mencari kode yang secara langsung memanggil fungsi Brotli. Mereka juga perlu memeriksa dependensi dan alur pemrosesan data yang digunakan aplikasi.