Security

Kerentanan Kritis ‘HTTP2Shell’ pada Brotli Picu Rilis Pembaruan Darurat

Sebuah celah keamanan kritis yang dijuluki ‘HTTP2Shell’ pada Brotli—pustaka dekoder C yang terintegrasi di dalam Node.js—dilaporkan dapat memungkinkan penyerang merusak memori sistem dan mengakses data sensitif.

Kerentanan yang dilacak di bawah identifikasi CVE-2026-111497 ini juga dikenal luas dengan nama “Broccoli2Shell” dan “Node2Shell”. Celah ini dikonfirmasi memengaruhi implementasi Brotli versi 1.0.3 hingga 1.0.9, 1.1.0, serta 1.2.0. Kerentanan ini dilaporkan dengan berbagai nama karena pada awalnya diidentifikasi di lingkungan Node.js, sebelum para peneliti menyadari bahwa cacat yang sama pada dekoder Brotli ternyata memengaruhi perangkat lunak di berbagai ekosistem.

Sebagai informasi, Brotli merupakan proyek open-source yang dikembangkan dan dikelola oleh Google untuk kompresi data lossless. Algoritma ini berfungsi mengecilkan ukuran berkas agar dapat ditransmisikan secara lebih cepat tanpa merusak data aslinya.

Dampak Luas Lintas Ekosistem Perangkat Lunak

Nama HTTP2Shell mencerminkan dampaknya yang besar terhadap klien dan server HTTP, meskipun kerentanan ini sebenarnya tidak spesifik hanya untuk protokol HTTP/2 dan dapat memengaruhi aplikasi apa pun yang mendekompresi data Brotli yang dikendalikan oleh penyerang.

Selain Node.js, perangkat lunak yang berpotensi terdampak mencakup klien HTTP berbasis Python seperti urllib3[brotli], requests, httpx, dan aiohttp[speedups]—jika dikonfigurasi menggunakan dekoder Brotli yang rentan—serta berbagai aplikasi maupun alat lain yang memaketkan pustaka Brotli versi lama. Sebagaimana diketahui, pada hari Minggu sebelumnya, Microsoft juga telah merilis pembaruan keamanan darurat untuk mengatasi masalah yang sama di lingkungan .NET.

Mekanisme Serangan dan Risiko RCE

Kerentanan Node2Shell pada dasarnya merupakan masalah kelebihan muatan penyangga (buffer overflow). Celah ini memungkinkan aliran data terkompresi Brotli yang dimanipulasi khusus untuk memicu peralihan blok tidak valid (invalid block switch). Oleh sistem dekoder, kondisi ini justru dianggap valid dan disalahartikan sebagai permintaan masukan data tambahan.

“Peralihan blok yang tidak valid dilaporkan sebagai kebutuhan sementara untuk masukan lebih banyak alih-alih kesalahan format permanen, sehingga dekoder streaming terus menambahkan bita (bytes) masukan ke penyangga internal delapan bita,” jelas pihak Node.js dalam peringatan keamanannya. Akibatnya, proses penulisan melampaui batas yang diizinkan dan merusak memori di sekitarnya.

Penyerang dapat mengeksploitasi celah ini dengan mengelabui aplikasi agar mendekompresi data berbahaya, misalnya dengan menyajikan respons HTTP terkompresi kepada aplikasi yang sedang mengambil sebuah URL, atau dengan mengirimkan permintaan terkompresi secara langsung ke server. Laporan terbaru dari perusahaan keamanan siber Imperva mengonfirmasi bahwa eksploitasi CVE-2026-111497 ini dapat memicu crash pada proses, mengekspos memori, hingga berujung pada eksekusi kode jarak jauh (Remote Code Execution / RCE).

Daftar Versi Aman dan Langkah Mitigasi

Perbaikan (fixes) hulu untuk Brotli sebenarnya telah dimasukkan ke dalam kode sumber proyek pada bulan Februari. Namun, Node.js dan Google baru merilis versi stabil untuk pengguna pada 21 Oktober 2026, diikuti oleh pengungkapan publik keesokan harinya. Paket perbaikan untuk ekosistem Python (PyPI) juga telah tersedia sejak 23 Oktober.

Berikut adalah daftar versi perangkat lunak yang telah ditambal:

  • Google Brotli: 1.0.10, 1.1.1, 1.2.1
  • Node.js: 22.23.4, 24.22.1, 26.12.1
  • Python Brotli: 1.2.1
  • Python brotlicffi: 1.2.1.0

Meskipun eksploitasi proof-of-concept (PoC) untuk Node2Shell telah dipublikasikan, hingga saat ini belum ada laporan aktivitas eksploitasi jahat di alam liar. Kendati demikian, pengguna diwajibkan untuk memprioritaskan penerapan pembaruan keamanan ini.

Setelah melakukan pembaruan, administrator harus memulai ulang (restart) proses yang terdampak, serta membangun dan menyebarkan ulang (rebuild and redeploy) image kontainer terkait. Portal pelacak kerentanan juga memperingatkan bahwa sekadar memperbarui pustaka Brotli di tingkat sistem operasi tidak akan menambal risiko pada Node.js atau aplikasi independen yang memaketkan salinan pustakanya sendiri.

Bagi sistem yang belum dapat diperbarui dengan segera, disarankan untuk menghapus dukungan Brotli dari aplikasi Python dan memblokir permintaan terkompresi Brotli yang masuk di tingkat proksi atau firewall. Namun, perlu dicatat bahwa memblokir permintaan Brotli yang masuk (inbound) masih membiarkan rute penerimaan respons HTTP (outbound) tetap terekspos.

Sumber: Node.js Security Advisory / Imperva

Leave a Reply

Your email address will not be published. Required fields are marked *


Back to top button