Node-RED Tanpa Login Dibajak (CVE-2026-58115): Cara Cek dan Amankan Port 1880

Oleh , Tim Engineering APIPedia · Terbit · 8 menit baca

Celah CVSS 10.0 di Node-RED IoT2050 sudah dieksploitasi lewat satu POST /flows. Cara cek port 1880, aktifkan adminAuth, dan deteksi bot/webshell.

Sampul APIPedia: Node-RED tanpa login dibajak lewat satu request, kartu fakta CVE-2026-58115 dengan skor CVSS 10.0 status kritis, fix IoT2050 V4.3.4.1 dan aktifkan adminAuth

CVE-2026-58115 adalah celah autentikasi pada antarmuka HTTP Node-RED di gateway Siemens SIMATIC IoT2050 Advanced (CVSS 10.0) yang kini sudah dieksploitasi. Penyerang cukup mengirim satu request untuk memasang flow jahat dan menjalankan perintah di server. Polanya mengenai semua Node-RED yang terbuka tanpa login.

Celah ini sebenarnya sudah diumumkan Siemens pada 11 Agustus 2026. Yang membuatnya ramai minggu ini adalah laporan VulnCheck (2 November) dan Help Net Security (3 November): serangan nyata pertama tertangkap pada 30 Oktober 2026, dengan payload berupa bot Linux dan webshell.

Node-RED populer di Indonesia. Banyak dipakai di Raspberry Pi untuk proyek IoT, dashboard pabrik, otomasi rumah, sampai integrasi bot WhatsApp sederhana. Jadi walau CVE-nya resmi untuk satu produk Siemens, pelajaran dan cara ceknya relevan untuk hampir semua pemakai Node-RED.

Apa sebenarnya celah CVE-2026-58115?

Menurut advisori Siemens SSA-834709, perangkat yang terdampak "tidak memberlakukan autentikasi pada antarmuka HTTP Node-RED". Akibatnya siapa pun yang bisa menjangkau perangkat dapat memakai node pemrograman yang mampu menjalankan perintah sistem. Siemens menyebut kode berjalan "dengan hak akses maksimum".

Klasifikasinya CWE-306 (Missing Authentication for Critical Function). Skornya 10.0 di CVSS 3.1 maupun CVSS 4.0, dengan vektor jaringan, tanpa login, dan tanpa interaksi pengguna.

Perlu dipahami: ini bukan bug memori atau parser yang rumit. Node-RED memang dirancang supaya editor bisa membuat flow, dan flow bisa menjalankan perintah shell lewat node exec. Masalahnya, editor dan Admin API Node-RED secara bawaan terbuka tanpa login dan mendengarkan di semua antarmuka (0.0.0.0:1880). Kalau port itu terjangkau dari internet, "deploy flow" sama artinya dengan "jalankan perintah apa pun".

Ringkasan fakta

ItemDetail
CVECVE-2026-58115 (ditetapkan Siemens)
JenisCWE-306, tidak ada autentikasi di antarmuka HTTP Node-RED
SkorCVSS 3.1: 10.0 · CVSS 4.0: 10.0 (Kritis)
Produk resmi terdampakSIMATIC IoT2050 Advanced (6ES7647-0BA00-1YA2), semua versi < V4.3.4.1 dengan Industrial OS dan Node-RED terpasang
Versi amanV4.3.4.1 atau lebih baru
AdvisoriSiemens SSA-834709 (11 Agustus 2026), CISA ICSA-26-237-03
EksploitasiPertama terlihat 30 Oktober 2026 (canary VulnCheck), 16 kejadian sampai 1 November
Status KEVMasuk VulnCheck KEV; belum di CISA KEV saat laporan ditulis

Bagaimana serangannya berjalan?

VulnCheck merilis deteksi untuk celah ini pada 27 Oktober. Tiga hari kemudian canary mereka menangkap percobaan eksploitasi pertama. Rekonstruksi alurnya seperti ini:

Diagram alur serangan CVE-2026-58115 dalam empat tahap: pindai Node-RED di port 1880 tanpa adminAuth, kirim POST /flows yang dibalas 200, node inject memicu node exec yang menjalankan perintah base64, lalu bot di /dev/shm/.b, implan /tmp/.kworker atau webshell dipasang

  1. Pindai. Penyerang memindai internet secara massal untuk mencari Node-RED yang tidak memakai adminAuth.
  2. Deploy. Satu request POST /flows (user agent curl/8.5.0) mengirim flow berisi node inject yang menyala sekali setelah 1 detik, tersambung ke node exec. Server membalas HTTP 200 plus hash revisi flow baru, tanda deploy berhasil.
  3. Eksekusi. Node exec menjalankan echo <base64> | base64 -d | sh. Perintahnya dibungkus tiga lapis encoding.
  4. Menetap. Dropper mengunduh bot-linux-amd64 dengan wget (cadangannya curl), menyimpannya di /dev/shm/.b, lalu menjalankannya di latar belakang dengan setsid atau nohup.

Pada pembaruan 1 November, VulnCheck melihat variasi payload dari IP yang sama: skrip bertahap di /tmp/.s, implan dari server kedua yang disimpan sebagai /tmp/.kworker (menyamar jadi thread kernel), dan webshell. Webshell dibuat dengan node http in (misalnya path /cmd) yang tersambung ke node exec, sehingga penyerang bisa mengirim perintah lewat parameter query kapan saja.

Ada beberapa hal yang tidak diketahui. VulnCheck tidak mengambil sampel bot-nya, jadi fungsinya (mining, DDoS, atau lainnya) belum jelas. Bot di /dev/shm hilang saat reboot, tetapi webshell di dalam flow tetap ada setelah restart.

IP penyerang (4.201.105.116) berada di jaringan Microsoft (AS8075) dan tergeolokasi ke Brasil. IP yang sama juga menembak 125 kali ke 8 CVE lain di Apache Solr, Camunda, Gitea, MLflow, Traefik, dan Joomla. VulnCheck menilainya sebagai pemindaian massal oportunistik, kemungkinan dari VM sewaan atau yang dibobol, bukan serangan tertarget.

Siapa saja yang terdampak?

Secara formal, CVE ini hanya untuk SIMATIC IoT2050 Advanced. Tetapi teknik serangannya berlaku untuk semua Node-RED yang:

  • editor/Admin API-nya bisa dijangkau dari jaringan yang tidak tepercaya (internet, Wi-Fi tamu, VPN bersama), dan
  • belum mengaktifkan adminAuth di settings.js.

Contoh yang sering ditemui di lapangan: Raspberry Pi dengan port 1880 di-forward lewat router rumah atau kantor, VPS murah yang menjalankan container nodered/node-red dengan -p 1880:1880, dan gateway industri di pabrik yang terhubung ke jaringan kantor. VulnCheck juga mencatat bahwa Emerson mendokumentasikan pemakaian Node-RED di lini produknya, tetapi belum memvalidasi apakah produk itu terdampak.

Ostorlab mencatat skala pemakaiannya: sekitar 92.432 unduhan npm per minggu dan lebih dari 327 juta pull Docker Hub (dicek 3 November 2026). Belum ada sumber yang menerbitkan angka pasti berapa instans yang terbuka di internet.

Kronologi singkat

Kronologi CVE-2026-58115: dicadangkan 29 Juni 2026, advisori Siemens SSA-834709 pada 11 Agustus 2026, deteksi VulnCheck 27 Oktober, eksploitasi pertama 30 Oktober, 16 percobaan sampai 1 November, laporan VulnCheck 2 November dan Help Net Security 3 November

Bagaimana cara mengecek apakah Node-RED saya terbuka?

Lakukan dari mesin di luar jaringan (misalnya dari VPS atau tethering HP), lalu ulangi dari dalam jaringan. Ganti HOST dengan IP atau domain Node-RED Anda.

# 1) Apakah Admin API mau membaca flow tanpa login?
#    200 = TERBUKA (bahaya), 401 = sudah butuh login
curl -s -o /dev/null -w "%{http_code}\n" http://HOST:1880/flows

# 2) Skema login yang dipakai editor
#    {} berarti tidak ada autentikasi sama sekali
curl -s http://HOST:1880/auth/login

Lalu periksa langsung di host yang menjalankan Node-RED:

# Node-RED mendengarkan di mana? 0.0.0.0:1880 = semua antarmuka
ss -tlnp | grep ':1880 '

# adminAuth aktif? Baris yang masih diawali // berarti belum aktif
grep -n "adminAuth" ~/.node-red/settings.js

# Versi firmware IoT2050 (aman bila >= V4.3.4.1)
cat /etc/os-release

Mitigasi: apa yang harus dilakukan sekarang?

1. Pengguna SIMATIC IoT2050 Advanced

Perbarui ke V4.3.4.1 atau lebih baru sesuai SSA-834709. Ostorlab mengingatkan bahwa memperbarui paket npm Node-RED saja tidak menutup celah di perangkat ini. Kalau belum bisa update, Siemens menyarankan memperkuat instalasi Node-RED atau mencopotnya.

2. Semua instalasi Node-RED: aktifkan adminAuth

Buat hash password dengan perintah bawaan:

node-red admin hash-pw
# Masukkan password, salin hash yang diawali $2b$...

Lalu isi di ~/.node-red/settings.js dan restart Node-RED:

module.exports = {
  // Hanya dengarkan di localhost bila editor diakses lewat reverse proxy/SSH tunnel
  uiHost: "127.0.0.1",

  adminAuth: {
    type: "credentials",
    users: [{
      username: "admin",
      password: "$2b$08$GANTI_DENGAN_HASH_ANDA",
      permissions: "*"
    }]
  },

  // Di server produksi yang tidak butuh editor sama sekali:
  // httpAdminRoot: false,
};

3. Kurangi permukaan serangan

  • Jangan forward port 1880 di router. Akses editor lewat VPN, SSH tunnel, atau reverse proxy ber-HTTPS dengan login.
  • Untuk Docker, bind ke localhost: -p 127.0.0.1:1880:1880.
  • Batasi TCP 1880 hanya untuk IP admin di firewall.
  • Lindungi juga endpoint http in dan Dashboard dengan basic auth atau OAuth, karena itu jalur favorit webshell.
  • Jalankan Node-RED sebagai user biasa, bukan root.

Deteksi: bagaimana tahu sudah dibobol?

Indikator di bawah berasal dari VulnCheck dan Ostorlab. Tidak menemukan apa-apa bukan jaminan aman, karena percobaan yang gagal bisa tidak meninggalkan jejak. Sebaliknya, cocok dengan indikator juga perlu dikonfirmasi.

# File yang dijatuhkan payload
ls -la /dev/shm/.b /tmp/.s /tmp/.kworker 2>/dev/null

# Node exec dan http in di flow (cek apakah memang Anda yang membuat)
grep -nE '"type": ?"exec"' ~/.node-red/flows*.json
grep -nE '"type": ?"http in"' ~/.node-red/flows*.json

# Proses mencurigakan dan koneksi ke server payload
ps -eo pid,user,cmd | grep -E '\.b$|kworker|bot-linux' | grep -v grep
ss -tnp | grep -E '85\.215\.73\.250|45\.194\.90\.57'

# Log reverse proxy: POST /flows dari IP asing
grep -E 'POST /flows' /var/log/nginx/access.log*

Indikator jaringan yang dirilis VulnCheck:

JenisIndikatorKeterangan
IP4.201.105.116Sumber serangan (AS8075)
IP:port85.215.73.250:8080Server payload bot-linux-amd64 dan wget.sh
IP:port45.194.90.57:38472Server .sys_update → /tmp/.kworker
File/dev/shm/.b, /tmp/.s, /tmp/.kworkerPayload yang dijatuhkan

Kalau menemukan tanda kompromi: simpan dulu flows.json, settings.js, dan log journald sebagai bukti, cabut perangkat dari internet, hapus flow asing, ganti semua kredensial yang tersimpan di node (token API, password database, kunci MQTT), lalu pertimbangkan instal ulang. Kalau Node-RED Anda menyimpan token layanan seperti kunci API di console.apipedia.id, cabut dan buat kunci baru.

Pola "layanan admin terbuka tanpa login" ini mirip dengan kasus yang pernah kami bahas di celah GitLab CVSS 10.0 dan Node2Shell di Node.js: begitu terekspos, pemindai massal biasanya menemukannya dalam hitungan hari.

FAQ

Saya pakai Node-RED di Raspberry Pi, bukan Siemens. Apakah saya terdampak CVE-2026-58115?

Secara formal tidak, karena CVE ini ditetapkan untuk SIMATIC IoT2050 Advanced. Tetapi kalau editor Anda terbuka ke internet tanpa adminAuth, serangan yang sama persis tetap berhasil. Penyerang tidak memeriksa merek perangkat, mereka mencari Node-RED yang mau menerima POST /flows.

Apakah update Node-RED ke versi terbaru menutup celah ini?

Tidak otomatis. Inti masalahnya adalah konfigurasi tanpa autentikasi. Di IoT2050, perbaikannya ada di firmware V4.3.4.1. Di instalasi lain, yang menutup celah adalah adminAuth dan tidak mengekspos port 1880.

Apakah CVE-2026-58115 sudah masuk CISA KEV?

Per laporan VulnCheck (2 November 2026) dan Help Net Security (3 November 2026), belum. Celah ini sudah masuk katalog KEV milik VulnCheck karena ada bukti eksploitasi.

Bot yang dipasang penyerang itu untuk apa?

Belum diketahui. VulnCheck menyatakan tidak mengambil dan menganalisis binernya, jadi tidak membuat klaim soal kemampuannya. Yang pasti, penyerang punya eksekusi perintah penuh di host.

Bagaimana kalau editor Node-RED harus bisa diakses tim dari luar kantor?

Pakai VPN (WireGuard, Tailscale) atau reverse proxy HTTPS dengan login, tetap aktifkan adminAuth, dan beri tiap orang akun sendiri dengan permission seperlunya (misalnya "read" untuk yang hanya memantau).

Sumber

Topik:

Tentang penulis

Tim APIPedia — Tim Engineering APIPedia

Tim engineering di balik APIPedia yang membangun dan memelihara API data Indonesia - ongkir, OCR KTP, data wilayah, BMKG, hingga server MCP - dan menulis panduan integrasinya dari pengalaman langsung.