Sebuah celah keamanan kritis pada pustaka dekompresi Google Brotli kini memicu alarm darurat di seluruh ekosistem pengembangan web dan infrastruktur komputasi awan. Kerentanan yang dilacak sebagai CVE-2026-111497 tersebut mulanya diidentifikasi pada Node.js dengan julukan "Node2Shell". Namun, hanya dalam hitungan hari, investigasi lintas platform mengonfirmasi bahwa radius dampaknya jauh lebih luas dari perkiraan awal, mendorong komunitas keamanan siber melabelinya kembali sebagai "HTTP2Shell".

Celah ini berakar pada pustaka decoder Brotli versi 1.0.3 hingga 1.2.0 yang dikembangkan oleh Google. Karena Brotli merupakan standar de facto untuk kompresi payload web modern di samping gzip, modul ini disematkan secara mendalam di dalam runtime populer, pustaka HTTP, hingga reverse proxy. Kerentanan ini mengantongi skor keparahan CVSS v3.1 sebesar 9,8 (Critical) dan CVSS v4.0 sebesar 9,2, mencerminkan kemudahan eksploitasi tanpa otentikasi serta dampak destruktif yang ditimbulkannya.

Mekanisme Kerusakan Memori pada Decoder Streaming

Berdasarkan penasihat keamanan resmi yang dirilis tim Node.js pada Rabu, 21 Oktober 2026, cacat logika ini terjadi pada komponen streaming decoder Brotli. Ketika menerima masukan data kompresi yang dirancang secara khusus oleh penyerang, decoder gagal mengenali pergantian blok yang tidak valid (invalid block switch) sebagai kesalahan format permanen. Alih-alih menghentikan proses dekompresi dan menolak paket tersebut, parser internal justru menganggap data tersebut membutuhkan masukan tambahan secara sementara.

Akibat kesalahan logika ini, streaming decoder terus menulis dan menambahkan bita masukan ke dalam buffer internal kecil yang hanya berukuran 8 bita. Penulisan bita yang melampaui kapasitas buffer tersebut menghasilkan kondisi out-of-bounds write (CWE-787). Penyerang jarak jauh yang mampu mengirimkan muatan terkompresi Brotli ke aplikasi yang menguraikannya melalui modul bawaan seperti node:zlib dapat merusak struktur memori proses. Kerusakan memori ini dapat dimanfaatkan untuk mematikan layanan secara tiba-tiba (denial-of-service), membocorkan isi memori proses yang sensitif, hingga mencapai eksekusi kode arbitrer jarak jauh (remote code execution/RCE).

Eskalasi Dua Arah: Dari Node2Shell Menjadi HTTP2Shell

Julukan Node2Shell pertama kali dipopulerkan setelah tim peneliti keamanan Imperva Red Team mempublikasikan pembuktian konsep (Proof-of-Concept/PoC) yang berhasil mengeksekusi kode perintah tanpa otentikasi pada instalasi resmi Node.js 24.22.0 di lingkungan Linux arm64. Kendati demikian, penyelidikan lanjutan membuktikan bahwa cacat ini bukan bug spesifik milik Node.js, melainkan kelemahan bawaan pustaka dasar Google Brotli.

Karakteristik paling berbahaya dari kerentanan ini terletak pada sifat serangannya yang bersifat dua arah (bi-directional):

Pertama, serangan inbound terhadap peladen. Klien atau penyerang eksternal dapat mengirimkan permintaan HTTP (seperti metode POST atau PUT) yang memuat header Content-Encoding: br berisi aliran data berbahaya. Jika peladen web, API gateway, atau fungsi komputasi serverless mengonfigurasi penguraian kompresi Brotli secara otomatis untuk membaca isi body permintaan, memori peladen akan langsung terkorupsi sebelum lapisan logika bisnis aplikasi sempat memproses otentikasi pengguna.

Kedua, serangan outbound terhadap klien. Skenario ini menyasar mikroservis, pustaka scraping, perayap web (crawler), atau aplikasi backend yang memanggil API eksternal. Jika aplikasi tersebut mengirimkan header Accept-Encoding: br dan peladen tujuan yang dikompromikan merespons dengan muatan berbahaya, pustaka HTTP pada klien akan mengalami crash atau pengambilalihan saat membedah respons tersebut.

Radius Dampak pada Bun, Python, dan Infrastruktur Proxy

Pemeriksaan inventaris dependensi mengungkap bahwa pustaka Brotli tertanam di banyak lapisan teknologi yang selama ini jarang diaudit secara langsung oleh pengembang aplikasi:

1. Runtime Alternatif: Runtime JavaScript Bun mengonfirmasi kerentanan pada mesin bawaannya dan langsung menerbitkan versi penambal darurat Bun 1.4.4. 2. Ekosistem Python: Paket Python populer brotli dan brotlicffi yang terpasang di ribuan lingkungan produksi rentan terhadap eksploitasi yang sama. Klien HTTP standar industri seperti requests, httpx, dan aiohttp secara otomatis mengaktifkan dekompresi Brotli jika kedua modul tersebut tersedia di dalam sistem. 3. Proxy Jaringan dan Gerbang API: Proxy berkinerja tinggi seperti Envoy yang dikonfigurasi dengan filter dekompresi Brotli aktif juga masuk dalam daftar terdampak, sementara peladen web tradisional seperti Apache (mod_brotli) dan Nginx relatif aman secara bawaan karena keduanya umumnya hanya melakukan kompresi searah ke arah klien dan tidak menguraikan permintaan Brotli secara default.

Anatomi Jeda Delapan Bulan di Rantai Pasok Open Source

Salah satu temuan paling mengejutkan dalam kasus CVE-2026-111497 adalah asal-usul tambalan kode di tingkat hulu. Pemeriksaan riwayat repositori Google Brotli menunjukkan bahwa komit perbaikan (commit 0ed4268a4401abcb44720963) oleh pemelihara kode Evgenii Kliuchnikov sebenarnya telah masuk ke repositori utama sejak 27 Februari 2026.

Sayangnya, perbaikan tersebut saat itu hanya ditandai sebagai koreksi bug rutin tanpa disertai laporan kerentanan keamanan atau peringatan publik. Tidak adanya rilis versi resmi (tag release) baru dari Google membuat proyek-proyek hilir yang memaketkan kode sumber Brotli—seperti Node.js, Python binding, dan aneka distribusi Linux—tetap menggunakan versi 1.0.3 hingga 1.2.0 yang rentan selama hampir delapan bulan.

Ketiadaan sinyal keamanan resmi ini baru terpecahkan setelah peneliti independen dan vendor keamanan siber menemukan kaitan langsung antara bug buffer tersebut dengan kemampuan eksekusi kode liar pada paruh kedua Oktober 2026. Situasi ini kembali menegaskan celah struktural dalam rantai pasok perangkat lunak sumber terbuka: perbaikan kode tanpa klasifikasi keamanan formal kerap tertimbun di hulu, meninggalkan jutaan peladen produksi dalam status rentan tanpa disadari pengelolanya.

Langkah Mitigasi dan Rekomendasi Patch

Hingga 24 Oktober 2026, belum ada laporan eksploitasi aktif di dunia nyata (in-the-wild exploitation) dan celah ini belum dimasukkan ke dalam katalog Known Exploited Vulnerabilities (KEV) milik badan keamanan siber AS (CISA). Meski demikian, ketersediaan eksploit PoC publik menuntut tindakan cepat dari tim DevOps dan teknisi keandalan situs (SRE).

Pengelola sistem diimbau untuk segera menerapkan langkah-langkah mitigasi berikut:

1. Perbarui Node.js: Lakukan pembaruan ke versi resmi terbaru sesuai lini rilis yang digunakan, yaitu Node.js 22.23.4 (LTS), Node.js 24.22.1 (LTS), atau Node.js 26.12.1 (Current). 2. Perbarui Bun dan Runtime Terkait: Pastikan lingkungan berbasis Bun telah dinaikkan minimal ke versi 1.4.4. 3. Audit Dependensi Python: Naikkan versi pustaka Brotli ke 1.2.1 atau brotlicffi ke 1.2.1.0, lalu bangun ulang citra kontainer (container image) terkait. Mengingat basis data audit otomatis seperti pip-audit dan Dependabot sempat mengalami jeda pemetaan metadata CVE pada paket PyPI, tim keamanan disarankan memeriksa versi paket secara manual. 4. Nonaktifkan Dekompresi Masukan Bila Patch Belum Tersedia: Jika layanan mikro atau proxy belum dapat diperbarui seketika, matikan fitur dekompresi otomatis untuk muatan Brotli yang masuk pada header HTTP, atau tolak sementara permintaan yang menyertakan header Content-Encoding: br di tingkat firewall aplikasi web (WAF).

Sumber https://nodejs.org/en/blog/vulnerability/october-2026-security-releases

Sumber tambahan: https://thehackernews.com/2026/10/brotli-decoder-flaw-behind-nodejs-rce.html

Sumber tambahan: https://www.aikido.dev/blog/python-packages-vulnerable-node2shell-brotli-cve-2026-111497

Sumber tambahan: https://nvd.nist.gov/vuln/detail/cve-2026-111497