Mengelola keamanan dependency Express: mempelajari CVE nyata di ekosistem 2026, npm audit dan lockfile, dependabot, serta alur update dependency yang cepat dan aman.

Aplikasi Express kalian bukan hanya kode kalian — ia adalah kumpulan ratusan package dari npm, masing-masing dengan riwayat keamanannya sendiri. Episode 19 membahas sisi yang sering dilupakan: mengelola kerentanan dependency. Satu package dengan CVE yang di-ignore bisa menjadi pintu masuk ke server kalian.
Mengapa ini penting di 2026? Karena eksosistem Express baru saja diingatkan secara pahit: serangkaian CVE dirilis pada 2026 untuk package yang sangat populer. Episode ini memakai contoh nyata itu untuk mengajarkan alur yang benar: mendeteksi, menilai, memprioritaskan, dan memperbaiki kerentanan dependency.
Pada pertengahan 2026, beberapa package yang dipakai bersama Express menerbitkan CVE — pengingat bahwa "populer" tidak sama dengan "aman":
| Package | CVE | Rilis |
|---|---|---|
| multer | CVE-2026-5079 | Juni 2026 |
| morgan | CVE-2026-5078 | Juni 2026 |
| (dependency lain) | CVE-2026-5038 | Juni 2026 |
| body-parser | CVE-2026-12590 | Juli 2026 |
Body-parser secara khusus menarik karena express.json() di balik layar memakainya — celah di body-parser berarti celah di setiap aplikasi Express yang memakai JSON body, yaitu hampir semua. Ini mengapa update rutin bukan pilihan: tanpa update, aplikasi kalian membawa kerentanan yang sudah diketahui publik dan bernomor resmi.
Warning
CVE di package populer bisa menyerang aplikasi yang tidak pernah menyentuh package itu secara langsung — body-parser adalah dependency transitif Express. Memahami dependency tree (kenapa package ini ada, siapa yang menariknya) adalah keterampilan penting saat menilai risiko CVE.
npm audit
npm audit --omit=devnpm audit membandingkan versi dependency kalian dengan database kerentanan dan mengelompokkan hasilnya:
found 2 vulnerabilities (1 moderate, 1 high) in 412 scanned packages
1 high: body-parser <= 1.20.2 → CVE-2026-12590
1 moderate: morgan <= 1.10.0 → CVE-2026-5078Outputnya memberi tahu package mana, versi yang rentan, dan versi perbaikan yang tersedia. Dua kolom penting: severity (moderate/high/critical) dan path (apakah direct atau transitif).
npm audit fix
npm audit fix --forcenpm audit fix menaikkan ke versi yang aman tanpa breaking change — jalankan pertama.--force bisa menaikkan mayor versi dan memicu breaking change — jangan asal; jalankan hanya setelah memahami dampaknya.Tip
Audit harus menjadi gateway CI: jika npm audit menemukan severity tinggi/kritis, build gagal. Dengan begitu, kerentanan baru terdeteksi di PR, bukan setelah produksi diserang. Contoh workflow GitHub Actions kita praktikkan di episode 24.
package-lock.json (dan bun.lock) berfungsi ganda untuk keamanan:
Jangan pernah menghapus lockfile. npm install tanpa lockfile dapat menghasilkan versi berbeda — termasuk versi yang sudah kena CVE setelah update registry.
Dependabot (GitHub) memindai dependency dan membuat PR otomatis saat versi baru atau perbaikan keamanan dirilis:
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 5
labels:
- "dependencies"
security-updates-only: trueOpsi security-updates-only: true fokus ke PR keamanan — Dependabot otomatis membuka PR saat versi aman tersedia untuk CVE yang terdeteksi.
PR dependabot sebaiknya dibaca dengan tiga pertanyaan:
npm install morgan@1.10.1
npm run lint
npm test
npm auditPola pembaruan yang disarankan:
Tidak semua CVE sama. Tiga pertanyaan untuk memprioritaskan:
Severity CVE (CVSS) membantu, tapi bukan jawaban final — konteks aplikasi kalian yang menentukan prioritas. CVE high di package yang tidak pernah dijalankan bisa lebih rendah prioritasnya daripada CVE moderate di middleware yang menyentuh tiap request.
Kerentanan "low" bisa naik kelas saat peneliti menemukan jalur eksploitasi baru. Catat semua, prioritaskan high/critical.
Update mayor langsung di produksi tanpa lint/test adalah undangan breaking change. Selalu lewati gerbang validasi.
PR dependabot aman untuk di-merge otomatis hanya untuk patch dan package yang tidak dipakai langsung. Mayor tetap perlu review.
Important
Keamanan dependency bukan sekali jadi: CVE baru terus muncul (seperti body-parser dan morgan di 2026). Jadikan audit dan update rutin berjalan, bukan reaksi saat insiden. Aplikasi Express yang sehat di produksi adalah yang selalu satu langkah di depan CVE terbaru.
Episode 19 mengelola risiko dependency: mengenali CVE nyata ekosistem Express 2026, memindai dengan npm audit, mengunci versi lewat lockfile, mengotomasi PR keamanan dengan Dependabot, dan menilai prioritas CVE sesuai konteks aplikasi.
Inti yang harus dibawa pulang:
npm audit mendeteksi; npm audit fix memperbaiki; --force butuh kehati-hatian.Di episode 20 selanjutnya kita akan membangun rate limiting & DoS protection — express-rate-limit, slow-down, proteksi brute-force login, dan strategi menahan serangan denial-of-service. Sampai jumpa di episode 20!