Where systems are built, broken, and understood.
Vulnerability

HTTP2Shell (CVE-2026-111497): Kerentanan Brotli yang Mengancam Node.js, Python, .NET, dan Infrastruktur Cloud

CVE-2026-111497, yang dikenal sebagai HTTP2Shell atau Node2Shell, merupakan kerentanan pada decoder Brotli yang dapat menyebabkan kerusakan memori hingga remote code execution (RCE). Kerentanan ini menjadi perhatian karena Brotli digunakan oleh berbagai runtime dan aplikasi, termasuk Node.js serta sejumlah library di ekosistem Python dan .NET.

Masalahnya bukan pada protokol HTTP/2, melainkan pada cara decoder menangani data terkompresi yang malformed. Aplikasi yang memproses input Brotli dari sumber tidak tepercaya berpotensi terdampak, tergantung implementasi dan jalur pemrosesan datanya.


Bagaimana Kerentanannya Bekerja?

CVE-2026-111497 berkaitan dengan kesalahan penanganan perpindahan blok dalam decoder Brotli berbasis C. Kondisi yang seharusnya dianggap sebagai input tidak valid dapat diperlakukan sebagai permintaan data tambahan, sehingga memicu penulisan data di luar batas buffer.

Dampaknya dapat berupa crash, korupsi memori, pengungkapan data, atau RCE dalam kondisi tertentu. Keberhasilan eksploitasi tidak otomatis sama pada setiap sistem karena bergantung pada implementasi, konfigurasi, dan proteksi runtime.

Produk dan Versi Terdampak

Berdasarkan informasi advisory yang dirujuk, komponen berikut perlu diperiksa:

Produk atau libraryVersi terdampakVersi perbaikan
Google Brotli1.0.3–1.0.9, 1.1.0, 1.2.01.0.10, 1.1.1, 1.2.1
Node.js 22.xSebelum 22.23.422.23.4
Node.js 24.xSebelum 24.22.124.22.1
Node.js 26.xSebelum 26.12.126.12.1
Python BrotliSebelum 1.2.11.2.1
Python brotlicffiSebelum 1.2.1.01.2.1.0
BunSebelum 1.4.41.4.4
.NET 8Sebelum 8.0.338.0.33
.NET 9Sebelum 9.0.229.0.22
.NET 10Sebelum 10.0.1410.0.14
Envoy ProxyRilis terdampak sebelum patchPeriksa advisory sesuai cabang rilis
IstioRilis terdampak sebelum patchPeriksa advisory sesuai cabang rilis

Tabel ini bukan daftar lengkap seluruh produk yang mungkin terdampak. Versi perbaikan bisa berbeda menurut vendor, distribusi Linux, dan mekanisme backport. Pastikan status setiap komponen melalui advisory resmi sebelum melakukan upgrade produksi.

Mengapa Patch OS Saja Tidak Cukup?

Tidak semua aplikasi menggunakan library Brotli yang disediakan sistem operasi. Runtime dapat membawa salinan dependensinya sendiri, sementara container menyimpan library di dalam image yang dibangun sebelumnya.

Akibatnya, memperbarui paket pada host tidak menjamin seluruh aplikasi sudah terlindungi. Tim infrastruktur perlu memeriksa dependensi aplikasi, memperbarui runtime, membangun ulang image yang terdampak, lalu melakukan redeploy dan memastikan proses lama sudah dihentikan.

Mitigasi

Prioritaskan layanan yang memproses data Brotli dari sumber tidak tepercaya, terutama aplikasi yang terekspos ke internet dan backend yang mengambil konten dari layanan eksternal. Jika patch belum tersedia, pertimbangkan untuk menonaktifkan dekompresi Brotli yang tidak diperlukan serta membatasi akses ke komponen yang rentan.

Memblokir request Brotli masuk saja tidak cukup. Aplikasi klien juga dapat terpapar ketika menerima respons terkompresi dari server eksternal.

Setelah patch diterapkan, periksa log crash, aktivitas proses yang tidak wajar, dan koneksi outbound yang menyimpang dari perilaku normal. Indikator tersebut bukan bukti pasti eksploitasi, tetapi dapat membantu investigasi jika ditemukan anomali.

Kesimpulan

HTTP2Shell menjadi pengingat bahwa satu library yang digunakan secara luas dapat memperluas permukaan serangan ke banyak ekosistem sekaligus. Tantangannya bukan hanya memasang patch, tetapi memastikan setiap runtime, dependensi, dan container yang terdampak benar-benar menggunakan versi yang telah diperbaiki

Status: Proof of Concept (PoC) tersedia.

Referensi