Keandalan Teknis & Keamanan

Celah Keamanan Node.js Node2Shell: Cek Versi Server

Celah keamanan Node.js Node2Shell (CVE-2026-111497) sudah dieksploitasi. Cek versi Node.js, Bun, dan Python server Anda, plus cara patch dan mitigasinya.

Celah Keamanan Node.js Node2Shell: Cek Versi Server
Daftar isi
  1. Apa Itu Celah Node2Shell dan Seberapa Serius?
  2. Siapa yang Terdampak Celah Keamanan Node.js Ini?
  3. Versi Aman Node.js, Bun, dan Python
  4. Cara Mengecek dan Menambal Server Anda
  5. Checklist Pemilik Bisnis yang Memakai Vendor
  6. Pertanyaan yang Sering Diajukan
  7. Referensi
  8. Lanjutkan membaca

Celah keamanan Node.js yang dijuluki Node2Shell (CVE-2026-111497) adalah out-of-bounds write di decoder Brotli milik Google yang dibundel Node.js. Data terkompresi yang sengaja dirusak bisa membuat server crash, membocorkan isi memori, atau menjalankan kode dari jarak jauh. Perbaikannya tersedia di Node.js 22.23.4, 24.22.1, dan 26.12.1.

Celah ini ada di runtime, yaitu program yang menjalankan aplikasi Anda, bukan di framework. Jadi, aplikasi Next.js, Nuxt, atau Express yang framework-nya sudah diperbarui tetap bisa rentan bila versi Node.js di servernya masih lama. Kasus ini berbeda dengan celah di framework yang dibahas dalam artikel celah keamanan Laravel dan Next.js.

Pada 27 Oktober 2026, CISA (lembaga keamanan siber Amerika Serikat) memasukkan CVE ini ke katalog Known Exploited Vulnerabilities. Artinya, celah ini sudah dieksploitasi dan bukan lagi sekadar risiko di atas kertas. Artikel ini menjelaskan siapa yang terdampak, versi mana yang aman, dan apa saja yang perlu Anda tanyakan ke developer.

Apa Itu Celah Node2Shell dan Seberapa Serius?

Node2Shell adalah bug memori di pustaka Brotli. Brotli adalah format kompresi yang umum dipakai untuk mengecilkan ukuran data di web. Menurut rilis keamanan resmi Node.js (Oktober 2026), data Brotli yang rusak membuat decoder terus menambahkan data ke buffer internal yang hanya berukuran 8 byte. Akibatnya, memori proses ikut rusak.

Beberapa fakta penting dari sumber resmi:

  • 21 Oktober 2026: Node.js merilis perbaikan untuk lini 22.x, 24.x, dan 26.x dan menilai tingkat keparahannya High.
  • 22 Oktober 2026: GitHub Advisory GHSA-9v8h-qqgm-4m35 memberi skor CVSS v4 9.2 (Critical) untuk pustaka Brotli versi 1.0.3 sampai 1.2.0. Sumber masalahnya ada di kode C Google Brotli, sehingga dampaknya tidak hanya mengenai Node.js.
  • 27 Oktober 2026: Katalog KEV CISA mencantumkan CVE-2026-111497 dengan tenggat perbaikan 10 November 2026 bagi instansi federal AS.

Julukannya juga bertambah. Mula-mula celah ini disebut Node2Shell karena Node.js yang pertama merilis perbaikan. Setelah itu muncul nama HTTP2Shell, karena perangkat lunak lain yang mendekompresi Brotli lewat HTTP juga terdampak. Menurut Strobes (24 Oktober 2026), semua nama itu mengacu pada satu bug dengan satu nomor CVE.

Dalam laporannya (diperbarui 26 Oktober 2026), perusahaan keamanan ELLIO mengklaim sensor mereka menangkap lalu lintas eksploit untuk CVE ini. Klaim itu berasal dari data satu vendor. Sinyal yang lebih netral adalah status KEV dari CISA, karena katalog itu hanya memuat celah yang terbukti dieksploitasi secara nyata.

Siapa yang Terdampak Celah Keamanan Node.js Ini?

Yang terdampak adalah aplikasi web atau API yang berjalan di Node.js 22, 24, atau 26 yang belum diperbarui dan memproses data Brotli yang bisa dikendalikan pihak luar. Versi yang rentan saja belum cukup untuk diserang. Data berbahaya juga harus punya jalan untuk sampai ke decoder.

Jalur 1: Request masuk dengan Content-Encoding br

Menurut Aikido (22 Oktober 2026), Express 5 dan body-parser 2.x mendekompresi body request yang ber-Content-Encoding: br, dan request seperti itu bisa dikirim oleh klien mana pun. Semgrep (22 Oktober 2026) memberi contoh express.json() dan menyebut @koa/bodyparser ikut terdampak lewat co-body. Server HTTP Node.js tanpa parser tambahan tidak mendekompresi body yang masuk.

Jalur 2: Respons yang diambil server Anda

fetch() bawaan Node.js otomatis mendekompresi respons Brotli. Risikonya paling tinggi bila server memanggil URL yang bisa ditentukan pengguna, misalnya untuk webhook, pratinjau tautan, atau impor dari URL. Server jahat cukup membalas dengan data Brotli yang sudah dirusak. Klien HTTP lain yang otomatis mendekompresi respons juga perlu dicek.

Jalur 3: Pemanggilan node:zlib secara langsung

Kode yang memakai fungsi Brotli di node:zlib, misalnya createBrotliDecompress(), untuk mengolah data dari klien juga rentan.

Di luar Node.js: Bun dan Python

  • Bun sebelum versi 1.4.4 terdampak lewat fetch, node:zlib, dan DecompressionStream. Menurut advisory Bun (23 Oktober 2026), executable hasil bun build --compile tetap rentan sampai dibangun ulang.
  • Python: menurut Aikido (23 Oktober 2026), requests/urllib3, httpx, aiohttp, dan Scrapy ikut terdampak bila paket Brotli di bawah 1.2.1 atau brotlicffi di bawah 1.2.1.0 terpasang, meskipun kode Anda tidak mengimpornya secara langsung.

Versi Aman Node.js, Bun, dan Python

Satu-satunya perbaikan yang tuntas adalah memperbarui ke versi di bawah ini. Rilis Node.js tidak memberikan workaround, dan advisory Bun menyatakan tidak ada workaround yang melindungi seluruh proses.

  • Node.js: 22.23.4, 24.22.1, atau 26.12.1, dirilis 21 Oktober 2026.
  • Node.js 20, 23, dan 25: sudah EOL (tidak didukung lagi), jadi tidak mendapat perbaikan. Aplikasi yang memakai versi ini harus dimigrasikan ke lini LTS yang masih didukung.
  • Bun: 1.4.4 atau lebih baru.
  • Python: Brotli 1.2.1 dan brotlicffi 1.2.1.0.
  • Paket libbrotli di distro Linux seperti Debian, Alpine, dan Ubuntu juga perlu diperbarui. Menurut Aikido (Oktober 2026), Debian dan Amazon Linux memasang perbaikan lewat backport. Karena itu nomor versinya terlihat lebih rendah dari 1.2.1 meskipun sudah ditambal. Jadikan advisory distro masing-masing sebagai acuan.

Cara Mengecek dan Menambal Server Anda

Pastikan versi runtime yang benar-benar berjalan di server sudah aman, lalu bangun ulang image dan deploy ulang. Langkah-langkah berikut ditujukan untuk developer atau tim IT Anda:

  1. Jalankan node -v di server atau container produksi. Jangan berpatokan pada process.versions.brotli. Menurut ELLIO, Node.js memasang tambalan tanpa mengubah string versi tersebut, sehingga nilainya tetap 1.2.0 di build yang rentan maupun yang sudah ditambal.
  2. Periksa base image Docker pada baris FROM node:XX. Menurut Aikido, image yang dikunci ke tag lama seperti node:24.22.0 tetap rentan meskipun dibangun ulang berkali-kali. Naikkan tag-nya, bangun ulang image, lalu deploy ulang. Restart container saja tidak cukup kalau image-nya masih lama.
  3. Untuk layanan Python, jalankan pip show brotli brotlicffi di setiap environment dan di dalam setiap image.
  4. Bangun ulang executable Bun hasil bun build --compile dengan Bun 1.4.4.
  5. Perbarui paket libbrotli di sistem operasi server.

Kalau upgrade belum bisa dilakukan, ada mitigasi sementara. Tolak request dengan Content-Encoding yang mengandung br di reverse proxy, WAF, atau middleware, dan jangan mendekompresi data Brotli dari input yang tidak tepercaya. Mitigasi ini hanya menutup jalur request masuk. Respons yang diambil server dari pihak luar tetap terbuka, jadi upgrade tetap harus dilakukan.

Checklist Pemilik Bisnis yang Memakai Vendor

Kalau website atau aplikasi Anda dikelola vendor atau developer lepas, Anda tidak perlu memeriksa server sendiri. Cukup ajukan pertanyaan yang tepat dan minta jawabannya secara tertulis.

  • Aplikasi kami berjalan di runtime apa (Node.js, Bun, atau Python), dan versi berapa yang terpasang di server produksi?
  • Kapan patch untuk CVE-2026-111497 dipasang, dan versi berapa yang terpasang sekarang?
  • Apakah image Docker sudah dibangun ulang dan di-deploy ulang, bukan hanya di-restart?
  • Apakah ada server lain yang belum dicek, misalnya staging, worker, atau layanan Python?
  • Siapa yang memantau advisory keamanan seperti ini, dan berapa lama target waktu untuk memasang tambalan?

Pertanyaan terakhir paling menentukan. Celah di runtime tidak terlihat dari tampilan website, jadi pemantauan dan pemasangan patch sebaiknya tertulis dalam cakupan pemeliharaan, bukan dikerjakan kalau sempat saja. Saat membandingkan penawaran vendor, pastikan poin ini tercantum, seperti dibahas dalam cara membandingkan penawaran website murah dan profesional. Patch juga perlu didukung pengamanan lain, misalnya SSL dan backup website, supaya data tetap bisa dipulihkan bila terjadi insiden.

Pertanyaan yang Sering Diajukan

Apakah website WordPress atau PHP terdampak Node2Shell?

Umumnya tidak lewat jalur Node.js, karena WordPress berjalan di PHP. Namun, server yang sama bisa saja memasang libbrotli versi rentan atau menjalankan layanan Node.js lain. Minta pengelola server memastikan paket libbrotli sudah diperbarui sesuai advisory distro.

Apakah cukup memperbarui Next.js atau Nuxt?

Tidak. Bug ini ada di decoder Brotli yang dibundel runtime Node.js, bukan di kode framework. Next.js atau Nuxt versi terbaru tetap berjalan di atas Node.js yang terpasang di server, jadi Node.js juga harus diperbarui ke 22.23.4, 24.22.1, atau 26.12.1.

Apa artinya CVE masuk katalog KEV CISA?

Katalog Known Exploited Vulnerabilities milik CISA hanya memuat celah yang terbukti sudah dieksploitasi secara nyata. Tenggat 10 November 2026 berlaku untuk instansi federal AS, tetapi organisasi lain juga bisa memakainya sebagai acuan prioritas. Celah berstatus KEV sebaiknya ditambal lebih dulu daripada celah lain.

Bagaimana cara memastikan server sudah aman?

Pastikan node -v di server produksi menunjukkan versi yang sudah diperbaiki, image sudah dibangun ulang dari base image baru, dan paket Brotli di Python serta libbrotli di sistem operasi sudah diperbarui. Satu server yang terlewat masih bisa menjadi celah masuk.

Kalau Anda belum yakin apakah aplikasi bisnis Anda berjalan di runtime yang rentan, atau belum ada pihak yang rutin memantau patch keamanan, tim konsultan IT Anaverse bisa membantu memeriksa versi runtime dan menyusun alur pemeliharaannya. Anaverse, software house dan IT consultant di Pekanbaru, Riau, melayani klien di Pekanbaru dan di seluruh Indonesia. Silakan hubungi kami lewat halaman kontak.

Referensi

Lanjutkan membaca

Baca selanjutnya

Celah Keamanan GitLab CVE-2026-97229: Cek Versi Server
Keandalan Teknis & Keamanan

Celah Keamanan GitLab CVE-2026-97229: Cek Versi Server

Celah keamanan GitLab CVE-2026-97229 (CVSS 10.0) sudah dieksploitasi. Cek versi server GitLab self-managed, versi aman, dan langkah setelah patch.

Celah Keamanan Kernel Linux CVE-2026-98432: Cek Server
Keandalan Teknis & Keamanan

Celah Keamanan Kernel Linux CVE-2026-98432: Cek Server

Celah keamanan kernel Linux CVE-2026-98432 (CVSS 9,8) bisa dipicu dari internet. Cek distro, versi kernel, status patch, dan langkah mitigasinya.

Ekstensi Claude Code Tiruan di Cursor: Cek Laptop Tim
Keandalan Teknis & Keamanan

Ekstensi Claude Code Tiruan di Cursor: Cek Laptop Tim

Ekstensi Claude Code tiruan 2.1.312 dan 2.1.313 beredar di Marketplace Cursor 29 Oktober 2026. Cek tanda backdoor di laptop tim dan cara memulihkannya.

Butuh partner digital?

Mari wujudkan ide Anda.

Konsultasikan kebutuhan website, sistem, atau aplikasi Anda bersama tim kami.