HTTP2Shell, kode CVE-2026-111497, ternyata bukan bug di protokol HTTP/2 melainkan celah out-of-bounds write pada decoder Brotli milik Google. Karena Brotli tertanam di Node.js, Python, .NET, Envoy, dan banyak produk lain, dampaknya menyebar luas. Berikut penjelasan nama yang membingungkan, dampak yang sudah terbukti, dan cara menambalnya per 29 Oktober 2026.
Ringkasan HTTP2Shell (CVE-2026-111497)
- CVE: CVE-2026-111497, jenis CWE-787 (out-of-bounds write). CISA menamainya "Google Brotli Unchecked Return Value Vulnerability".
- Komponen: decoder Google Brotli versi 1.0.3 sampai 1.2.0 (1.0.3 sebelum 1.0.10, 1.1.0 sebelum 1.1.1, dan 1.2.0 sebelum 1.2.1). Perbaikan ada di 1.0.10, 1.1.1 dan 1.2.1.
- Skor: CVSS v4.0 9.2 dari Google selaku CNA, menurut Rapid7. NVD memberi CVSS v3.1 9.8. Node.js menilainya High, sedangkan Red Hat (Important) dan Microsoft sama-sama memberi CVSS v3.1 8.1 karena eksploitasinya dinilai butuh kondisi tertentu.
- Status eksploitasi: masuk CISA KEV pada 27 Oktober 2026 dengan tenggat 10 November untuk lembaga federal AS. CISA tidak merinci serangannya.
- Dampak: crash proses (DoS) adalah dampak yang paling pasti. Eksekusi kode jarak jauh diklaim sebagian peneliti, tetapi keandalannya masih diperdebatkan.
Mengapa disebut HTTP2Shell padahal bukan bug HTTP/2
Satu celah ini punya beberapa nama. Node2Shell muncul pertama setelah Node.js merilis perbaikan pada 21 Oktober 2026. Nama HTTP2Shell menyebar setelah unggahan sebuah vendor keamanan pada 23 Oktober yang menekankan dampaknya di luar Node.js, lalu Wiz memakai nama Broccoli2Shell pada 25 Oktober. Menurut Brandefense, nama HTTP2Shell menyesatkan: bug-nya ada di pustaka kompresi Brotli, bukan di protokol HTTP/2, dan catatan CVE serta advisori Node.js tidak memakai nama itu. Semuanya merujuk ke satu CVE yang sama, bukan celah kedua.
Waspadai penipuan di sekitar nama ini. Sebuah token kripto bernama $HTTP2SHELL muncul sekitar 40 menit setelah nama itu menyebar, dan tidak ada bukti keterkaitannya dengan celah maupun perbaikannya. Beberapa repositori berlabel HTTP2Shell juga sudah ada sebelum celah ini dan tidak berhubungan dengan Brotli. Ambil perbaikan hanya dari halaman resmi vendor.
Cara kerja celah secara konseptual
Brotli adalah algoritma kompresi yang lazim dipakai untuk konten web (Content-Encoding: br). Menurut Rapid7, decoder salah menganggap blok data yang tidak valid sebagai kebutuhan input tambahan, bukan sebagai kesalahan format permanen. Decoder streaming kemudian terus menambahkan data ke buffer delapan byte hingga melewati batasnya. Ini kelas bug kerusakan memori yang dapat membuat proses crash, membocorkan isi memori, atau pada kondisi tertentu membuka jalan ke eksekusi kode.
Kondisi paparannya spesifik: aplikasi harus mendekode data Brotli yang dikendalikan pihak lain. Itu bisa berupa body request yang dikirim klien, atau respons dari server eksternal yang diambil aplikasi Anda. Aplikasi yang tidak pernah mendekode Brotli dari sumber tidak tepercaya jauh lebih kecil risikonya. Untuk latar belakang tentang kelas serangannya, baca pengertian RCE.
Eksploitasi: yang terbukti dan yang diperdebatkan
Menurut SecurityWeek, perusahaan telemetri ELLIO mencatat permintaan berbahaya pada 26 Oktober yang menarget build resmi Node.js 24.22.0, tetapi menilai tahap akhir eksploit rusak: gagal pada 50 dari 50 uji terhadap Node.js yang rentan. ELLIO juga memperingatkan percobaan yang gagal dapat membuat proses crash. Previdian mencatat satu percobaan pada 27 Oktober, tanpa bukti bahwa percobaan itu berhasil. Di sisi lain, Imperva dan ELLIO sendiri menyatakan berhasil menunjukkan eksekusi kode pada build resmi Node.js dalam pengujian mereka. Sebaliknya, per 23 Oktober Red Hat menyatakan belum ada PoC eksekusi kode jarak jauh publik yang andal, dan Microsoft menandainya belum dieksploitasi tetapi "exploitation more likely". Kesimpulan yang aman untuk perencanaan: anggap DoS nyata dan RCE mungkin. Sejumlah repositori publik berklaim PoC belum terverifikasi, dan sebagian bisa berisi malware, jadi jangan menjalankannya.
Siapa yang terdampak dan cara menambalnya
Daftar berikut mencakup versi perbaikan menurut Rapid7 dan Brandefense per 28 Oktober. Periksa advisori vendor Anda untuk status terbaru.
- Node.js: 22.23.4, 24.22.1, 26.12.1. Lini yang sudah end-of-life dianggap terdampak dan perlu migrasi.
- Bun: 1.4.4. Executable hasil bun build --compile tetap rentan sampai dibangun ulang.
- Python: paket brotli 1.2.1 dan brotlicffi 1.2.1.0.
- .NET: runtime 8.0.33, 9.0.22 dan 10.0.14; .NET Framework tidak terdampak menurut Brandefense. Microsoft mencatat dekompresi Brotli tidak aktif secara default di .NET dan ASP.NET Core, sehingga yang berisiko adalah aplikasi yang sengaja mengaktifkannya. Aplikasi self-contained, NativeAOT dan container perlu dibangun ulang.
- Envoy dan Istio: Envoy 1.40.0 (dan backport ke lini lama), Istio 1.29.9, 1.30.6 dan 1.31.2. Envoy hanya terdampak bila dekompresor Brotli dikonfigurasi.
- Distribusi Linux: Debian 12 dan 13, Ubuntu 22.04 sampai 26.10, RHEL 8, 9 dan 10 (errata 26 Oktober), Alpine dan openSUSE Tumbleweed sudah punya paket brotli perbaikan. Debian forky masih menunggu paket perbaikan, dan Ubuntu 20.04 ke bawah belum terdaftar mendapat paket perbaikan. Di Debian serta Ubuntu 22.04 ke atas, paket nodejs memakai Brotli sistem, sehingga pembaruan paket brotli yang menutup celahnya; di Ubuntu 20.04 paket nodejs membawa salinan Brotli sendiri dan tercatat masih rentan.
- Produk lain: Broadcom memperingatkan SDDC Manager di VMware Cloud Foundation dan vSphere Foundation terdampak karena memakai Node.js (CVSS 9.8 pada 9.1.1), dengan patch masih menyusul dan workaround di artikel KB. Palo Alto Networks dilaporkan menyiapkan hotfix PAN-OS. Salinan Brotli yang tertanam di beberapa proyek lain belum punya rilis perbaikan per akhir Oktober.
Langkah kerjanya: (1) inventarisasi semua tempat Brotli dipakai, termasuk binary statis, image container, dan salinan yang di-vendor. Dokumen SBOM sangat membantu di sini. (2) Perbarui, bangun ulang, dan deploy ulang. (3) Restart semua layanan dan replika yang memakai build lama. Contoh ini juga memperlihatkan risiko rantai pasok perangkat lunak: satu pustaka kecil, ratusan produk.
Mitigasi sementara dan deteksi
- Berhenti menerima body request berkode Brotli dan pertahankan gzip atau deflate. Pada Envoy dan Istio, nonaktifkan filter dekompresor Brotli. Di Bun, opsi decompress: false mematikan dekode untuk satu request.
- Aturan WAF hanya parsial: aturan Azure 920450 mencakup lalu lintas masuk saja, dan aturan darurat Cloudflare berstatus Log secara default, menurut Brandefense. WAF tidak memeriksa respons dari server luar yang Anda ambil.
- Pantau crash berulang pada proses Node.js atau Python, terutama setelah request dengan encoding br, serta proses anak yang tidak biasa. Pelajari juga cara memakai CISA KEV untuk menentukan prioritas.
Pelajaran untuk tim pengembang
Pelajaran terbesarnya adalah visibilitas dependensi. Banyak tim tidak tahu bahwa runtime, proxy, atau pustaka yang mereka pakai membawa decoder Brotli di dalamnya. Pastikan pipeline build menghasilkan SBOM, pantau advisori untuk komponen bawaan, dan catat siapa pemilik tiap layanan yang memproses input dari luar. Selain itu, pertimbangkan apakah layanan Anda benar-benar perlu menerima body request terkompresi dari klien. Bila tidak perlu, menutup jalur itu mengurangi permukaan serangan untuk celah dekompresi berikutnya.
Baca juga: Celah Kritis VMware vCenter VMSA-2026-0006.
Pertanyaan yang Sering Diajukan
Apakah HTTP2Shell sama dengan PHP2Shell?
Tidak. PHP2Shell adalah dua celah di mesin PHP. HTTP2Shell adalah satu celah di decoder Brotli. Keduanya muncul pada pekan yang sama, tetapi berbeda dan harus ditambal terpisah.
Apakah menonaktifkan HTTP/2 menolong?
Tidak. Masalahnya ada di dekompresi Brotli, bukan di protokolnya.
Apakah proyek Go dan JavaScript lain ikut terdampak?
Tergantung apakah mereka memakai pustaka Brotli yang terdampak, baik bawaan runtime maupun paket yang di-vendor. Periksa dependensi dan advisori masing-masing proyek.
Kesimpulan
HTTP2Shell mengingatkan bahwa nama populer tidak selalu menggambarkan letak masalah. Fokuslah pada fakta: satu CVE di pustaka Brotli, DoS terbukti, RCE masih diperdebatkan, dan perbaikan tersedia di banyak produk. Bila tim Anda perlu menelusuri dependensi atau menguji paparan aplikasi, Linuxhackingid menyediakan asesmen keamanan lewat halaman layanan kami.
Setiap artikel ditinjau pimpinan praktik yang menangani pekerjaannya sebelum terbit.
