---
title: "Celah Brotli Node.js CVE-2026-111497 Sudah Dieksploitasi"
description: "CVE-2026-111497 di dekoder Brotli Node.js sudah masuk katalog KEV CISA. Cek versi Node.js-mu dan naikkan ke 26.12.1, 24.22.1, atau 22.23.4."
url: "https://nivelva.com/insight/nodejs-brotli-cve-2026-111497"
category: "Keamanan/Cyber Security"
tags: ["node.js","cve-2026-111497","brotli","kev","patch"]
author: "Lucas Tan"
published: "2026-11-12T16:07:00+07:00"
updated: "2026-11-12T16:07:00+07:00"
language: "id"
publisher: "Nivelva (https://nivelva.com)"
---

# Celah Brotli Node.js CVE-2026-111497 Sudah Dieksploitasi

> **Jawaban singkat:** CVE-2026-111497 adalah out-of-bounds write di dekoder Brotli bawaan Node.js yang bisa berujung eksekusi kode. Node.js menambalnya 21 Oktober 2026 di versi 26.12.1, 24.22.1, dan 22.23.4, lalu CISA memasukkannya ke katalog KEV pada 27 Oktober karena sudah dieksploitasi.

Apakah aplikasi Node.js di servermu sudah naik versi sejak akhir Oktober? Kalau belum, ini saatnya. Celah **CVE-2026-111497** di dekoder Brotli bawaan Node.js sudah masuk katalog Known Exploited Vulnerabilities (KEV) milik CISA pada **27 Oktober 2026**, artinya ada bukti celah ini dipakai menyerang di dunia nyata.

Jawaban singkatnya: naikkan Node.js ke **v26.12.1**, **v24.22.1**, atau **v22.23.4** sesuai lini yang kamu pakai. Ketiganya dirilis Node.js pada 21 Oktober 2026. Lini 20.x ke bawah sudah end of life dan tidak mendapat perbaikan.

| Data | Nilai |
|---|---|
| ID | CVE-2026-111497 |
| Tingkat bahaya | Kritis (CVSS 9.2) |
| Produk terdampak | Node.js (dekoder Brotli bawaan) |
| Versi terdampak | lini 26.x, 24.x, 22.x sebelum versi perbaikan |
| Versi aman | 26.12.1, 24.22.1, 22.23.4 |
| Status | Dieksploitasi, patch tersedia |
| Diumumkan | 21 Oktober 2026 |
| Detail | https://nvd.nist.gov/vuln/detail/CVE-2026-111497 |

## Apa sebenarnya celah ini?

Brotli adalah format kompresi buatan Google yang banyak dipakai di web (header `Content-Encoding: br`). Node.js membundel pustaka Brotli untuk modul `node:zlib`.

Menurut pengumuman keamanan Node.js, data Brotli yang sengaja dibuat rusak bisa membuat dekoder menulis melewati batas buffer internal berukuran delapan byte. Penyebabnya, sebuah block switch yang tidak valid dianggap sebagai "butuh input lagi", bukan kesalahan format. Dekoder pun terus menambahkan byte ke buffer itu.

Akibatnya, penyerang yang bisa mengirim data Brotli ke aplikasi yang mendekompresinya dapat merusak memori proses. Dampaknya bisa berupa crash, bocornya isi memori, atau eksekusi kode dari jarak jauh. Node.js menilai celah ini High, sedangkan skor CVSS v4.0 dari Google sebagai CNA adalah **9.2**. Celah ini dilaporkan peneliti dari OpenAI Codex Security.

Di media keamanan, celah ini juga dijuluki Node2Shell atau Brotli2Shell.

## Siapa saja yang terdampak?

Bukan hanya Node.js. Bug-nya ada di pustaka Brotli itu sendiri, jadi proyek lain yang membundel Brotli ikut kena. Proyek Brotli Google merilis perbaikan **1.2.1, 1.1.1, dan 1.0.10** di hari yang sama dengan Node.js, dan Bun merilis perbaikannya keesokan harinya.

Di aplikasi Node.js, jalur yang perlu kamu waspadai menurut analisis Corgea antara lain:

- Kode yang memanggil `zlib.brotliDecompress()`, `zlib.brotliDecompressSync()`, atau `zlib.createBrotliDecompress()`.
- `fetch()` bawaan Node.js yang otomatis mendekompresi respons Brotli dari server lain, termasuk server yang dikuasai penyerang.
- Express 5 atau `body-parser` 2.x yang menerima body permintaan dengan `Content-Encoding: br`.

| Komponen | Versi perbaikan |
|:--|:--|
| Node.js 26.x | 26.12.1 |
| Node.js 24.x | 24.22.1 |
| Node.js 22.x | 22.23.4 |
| Node.js 20.x ke bawah | Tidak ditambal (end of life), wajib migrasi |
| Pustaka Brotli (google/brotli) | 1.2.1, 1.1.1, atau 1.0.10 |
| Bun | 1.4.4 atau lebih baru (menurut Corgea) |
| Paket Python `Brotli` | 1.2.1 atau lebih baru (menurut Corgea) |

Rilis keamanan Node.js 21 Oktober itu sebenarnya menambal sepuluh celah sekaligus (sebagian media menyebut sembilan), termasuk tiga celah High lain terkait `dns.resolve` dan validasi hostname sertifikat TLS. Satu kali upgrade menutup semuanya.

## Langkah menambal Node.js di server

### 1. Cek versi yang berjalan

```bash
node -v
```

Kalau aplikasi berjalan di container, cek di dalam container-nya, bukan di host:

```bash
docker exec nama-container node -v
```

Kalau hasilnya di bawah 26.12.1, 24.22.1, atau 22.23.4 pada lininya, server kamu rentan. Perhatikan juga bahwa Node.js tidak mengubah angka `process.versions.brotli` pada rilis ini, jadi patokan tetap versi Node.js-nya.

### 2. Upgrade sesuai cara pasang

Kalau memakai paket NodeSource atau repositori distro:

```bash
sudo apt-get update
sudo apt-get install --only-upgrade nodejs
```

Kalau memakai nvm, pasang versi perbaikan lalu jadikan default:

```bash
nvm install 22.23.4
nvm alias default 22.23.4
```

Untuk aplikasi di Docker, ganti tag image dasar ke versi perbaikan (misalnya `node:22.23.4` atau `node:24.22.1`), build ulang image, lalu jalankan ulang container. Image lama yang tersimpan di registry tetap rentan sampai dibangun ulang.

### 3. Restart proses aplikasi

Upgrade binary tidak mengubah proses yang sudah berjalan. Restart aplikasi, misalnya `pm2 restart all` bila kamu memakai PM2, lalu cek ulang dengan `node -v` dan log aplikasi.

### 4. Pasang pengaman sementara bila belum bisa upgrade

Sambil menunggu jadwal upgrade, kamu bisa menolak permintaan yang body-nya dikompresi Brotli di reverse proxy. Contoh di Nginx, di dalam blok `server`:

```nginx
if ($http_content_encoding ~* "br") {
    return 415;
}
```

Ini hanya menutup jalur permintaan masuk. Respons Brotli yang diambil aplikasi lewat `fetch()` dari server lain tidak ikut terlindungi, jadi upgrade tetap wajib.

### 5. Periksa komponen lain yang membundel Brotli

Cari runtime atau pustaka lain di servermu yang memakai Brotli, misalnya Bun atau paket Python `Brotli`, lalu naikkan ke versi perbaikannya.

## Kenapa status KEV membuat ini mendesak?

Katalog KEV hanya memuat celah yang terbukti dieksploitasi. CISA memberi tenggat 10 November 2026 bagi instansi federal AS untuk menambalnya, dan tenggat itu sudah lewat. Penjelasan lebih lengkap soal cara memakai daftar ini untuk menentukan prioritas ada di artikel [katalog KEV CISA](https://nivelva.com/insight/katalog-kev-cisa-prioritas-patch).

Bagi bisnis yang menjalankan API, webhook, atau backend toko online di Node.js, aplikasi yang menghadap internet adalah sasaran paling mudah. Masukkan upgrade runtime ke dalam rutinitas [patch management](https://nivelva.com/insight/apa-itu-patch-management-cara-menjalankannya) supaya kejadian serupa tidak menunggu sampai ada berita eksploitasi. Kalau kamu menjalankan Node.js dengan PM2, panduan [menjalankan aplikasi Node.js di VPS](https://nivelva.com/insight/cara-menjalankan-aplikasi-node-js-vps-pm2) bisa jadi rujukan cara restart yang aman.

## Pertanyaan yang sering diajukan

### Apakah aplikasi yang tidak memakai Brotli secara langsung tetap rentan?

Bisa. fetch() bawaan Node.js dan beberapa framework mendekompresi Brotli secara otomatis, jadi jalur serangan bisa muncul tanpa kamu menulis kode zlib sendiri. Cara paling aman adalah upgrade Node.js.

### Masih memakai Node.js 20, apa yang harus dilakukan?

Lini 20.x sudah end of life dan tidak mendapat perbaikan untuk celah ini. Rencanakan migrasi ke 22.x atau 24.x, lalu pasang versi perbaikannya.

### Apakah cukup memblok Content-Encoding br di reverse proxy?

Tidak. Itu hanya pengaman sementara untuk permintaan masuk. Respons Brotli dari server lain yang diambil aplikasi tetap bisa memicu celah.

### Apakah image Docker yang sudah jalan otomatis ikut aman setelah upgrade di host?

Tidak. Node.js di dalam container berasal dari image-nya sendiri. Build ulang image dengan tag versi perbaikan lalu jalankan ulang container.

### Kapan CVE-2026-111497 masuk katalog KEV?

CISA memasukkannya ke katalog KEV pada 27 Oktober 2026 karena ada bukti eksploitasi aktif.

Checklist singkat:

- `node -v` menunjukkan 26.12.1, 24.22.1, 22.23.4, atau lebih baru.
- Image Docker berbasis Node.js sudah dibangun ulang.
- Proses aplikasi sudah di-restart.
- Bun, paket Python `Brotli`, dan komponen lain yang membundel Brotli sudah diperbarui.
- Server yang masih di Node.js 20 sudah dijadwalkan migrasi.

## Sumber

- <https://nodejs.org/en/blog/vulnerability/october-2026-security-releases>
- <https://thehackernews.com/2026/10/nodejs-brotli-decoder-bug-could-allow.html>
- <https://www.getastra.com/blog/security-advisory/node-js-security-release/>
- <https://corgea.com/research/cve-2026-111497-105482-106069-nodejs-brotli-rce-dns-tls-october-2026>
- <https://www.bleepingcomputer.com/news/security/cisa-warns-of-hackers-now-exploiting-critical-node2shell-flaw/>

---

Diterbitkan oleh Nivelva Insight (https://nivelva.com/insight/). Artikel ini: https://nivelva.com/insight/nodejs-brotli-cve-2026-111497
Kontak Nivelva: WhatsApp https://wa.me/6285111245007, email hello@nivelva.com
