CVE Lite CLI: Dependency Vulnerability Scanner

CVE Lite CLI: Dependency Vulnerability Scanner

CVE Lite CLI adalah local-first dependency vulnerability scanner untuk proyek JavaScript dan TypeScript — OWASP Lab Project, MIT license, maintained by Sonu Kapoor. Scan lockfile dalam hitungan detik, query OSV database, dan kasih copy-and-run fix command — bukan cuma daftar CVE ID yang bikin pusing.

Proses triase makan waktu berjam-jam, dan setelah install package pengganti pun CI masih bilang vulnerable. CVE Lite CLI hadir buat nyegetin loop itu dengan mindahin security check langsung ke terminal developer — sebelum code di-push, sebelum CI jalan, sebelum vulnerable dependency jadi bagian permanen dari project baseline.


1. Architecture & Scanning Pipeline

CVE Lite CLI didesain dengan prinsip yang sangat jelas: deterministic, local-first, dan zero source code egress. Nggak ada account, nggak ada config rumit, nggak ada source code yang keluar dari mesin lo. Vulnerability analysis-nya sengaja dibuat non-AI — “I do not think AI should decide whether a CVE exists. That part needs to be boring, repeatable, and auditable,” kata Kapoor.

[PIPELINE : LOCKFILE → FIX COMMAND]

1. Read lockfile — Baca package-lock.json, pnpm-lock.yaml, yarn.lock, atau bun.lock dari project mu.Ini yang ngebedain dari npm audit biasa — CVE Lite CLI lihat resolved dependency graph yang aktual, bukan cuma top-level packages.

2. Query OSV — Match semua package di dependency graph ke Open Source Vulnerabilities database (Google-maintained, aggregasi data dari NVD, GitHub Advisory Database, dan language-specific registries). Local cache: ~217.000 advisory records, sync dalam kurang dari 9 detik.

3. Classify — Tiap finding diklasifikasikan: severity, direct vs transitive, dan apakah ada fix path yang tersedia.

4. Output fix command — Hasilkan copy-and-run command yang scoped ke package manager lo: npm install pkg@version, pnpm add pkg@safe, dll. Fix command juga otomatis di-scan ulang buat validasi bahwa pengganti yang direkomendasikan beneran clean.

Kenapa lockfile scanning lebih baik dari npm audit biasa:

Aspek npm audit biasa CVE Lite CLI
Dependency visibility Top-level packages yang lo ingat install. Full resolved graph — runtime, dev, tooling, transitive semua ikut.
Direct vs transitive Nggak selalu jelas dibedain. Eksplisit dipisah — lo tahu mana yang bisa lo fix langsung, mana yang butuh keputusan dependency lebih luas.
Output Daftar CVE ID + saran bulk fix yang bisa breaking. Copy-and-run fix command per package, divalidasi otomatis.
Timing CI pipeline — berjam-jam setelah kode ditulis. Terminal lokal — sebelum push, saat dependency decision masih fresh.
Source code egress Tergantung tool — beberapa kirim ke server. Nol — semua jalan di mesin lo.
💡 Real blind spot: Dalam pengujian CVE Lite CLI terhadap lint-staged, standar npm audit --omit=dev gagal mendeteksi production dependency issue yang CVE Lite CLI temukan lewat lockfile analysis. Dependency graph modern JavaScript sangat noisy — developer jarang sadar berapa banyak transitive package yang ikut masuk.

2. Coverage & Evidence Features

CVE Lite CLI punya footprint yang sangat minimal — hanya 4 runtime dependencies (yaml, yarn-lockfile, better-sqlite3, fflate). Ini pilihan deliberate: tool security yang auditable harus ringan dan transparan.

  • Package manager support: npm, pnpm, Yarn, dan Bun — semua via lockfile scanning.
  • Output format: Terminal output (colored, human-readable), JSON (untuk CI/dashboard integration), SARIF (langsung ke GitHub Code Scanning — muncul di Security tab dan inline PR annotations), dan HTML report (self-contained, shareable untuk compliance audit atau handoff).
  • Air-gapped support: Advisory database bisa di-sync ahead of time untuk restricted network atau air-gapped environment. ~217.000 advisory records, sync selesai dalam 9 detik — 9,9x lebih cepat dari implementasi awal.
  • CI integration: Flag --fail-on exit non-zero saat findings memenuhi atau melebihi severity threshold — bisa blok merge di CI tanpa perlu konfigurasi tambahan.
  • AI coding assistant integration: CVE Lite CLI punya “AI assistant skills” yang ngajarin tools seperti Claude Code, Codex CLI, Gemini CLI, Cursor, dan GitHub Copilot cara jalanin scanner, baca structured output-nya, dan bantu developer prioritize remediation plan. AI-nya di sini berperan sebagai explanation layer — bukan yang nentuin apakah CVE valid.

Quick start:

# Install global
npm install -g cve-lite-cli# Scan project di directory sekarang
cve-lite .

# Scan dengan severity threshold — fail jika ada HIGH+
cve-lite . –fail-on high

# Output JSON (untuk CI/dashboard)
cve-lite . –output json

# Output SARIF (GitHub Code Scanning)
cve-lite . –output sarif

# Generate HTML report + auto-open browser
cve-lite . –report

# Sync advisory database untuk air-gapped env
cve-lite sync

# Contoh output terminal — direct vs transitive jelas dipisah:
# DIRECT lodash@4.17.20 HIGH CVE-2021-23337 → npm install lodash@4.17.21
# TRANSITIVE minimist@1.2.5 MEDIUM CVE-2021-44906 → via jest → no direct fix

Benchmark nyata — OWASP Juice Shop:

[TEST RESULT : OWASP JUICE SHOP]

Kapoor menguji CVE Lite CLI terhadap OWASP Juice Shop — aplikasi Node.js sengaja insecure yang dependency tree-nya representatif dengan project JavaScript production nyata.

Sebelum: 39 findings, termasuk high-severity issue.

Setelah 2 remediation pass: Turun ke 18 findings, high-severity cleared — upstream dependency risk terpisah jelas dari masalah yang bisa langsung di-fix developer.

⚠️ Batas yang perlu dipahami: CVE Lite CLI deteksi kerentanan berbasis CVE database — artinya hanya efektif terhadap vulnerability yang sudah publicly disclosed dan masuk OSV. Supply chain attack modern yang belum jadi CVE (malicious package, typosquatting, compromised maintainer) tidak tercakup di sini. Tool ini satu layer pertahanan, bukan satu-satunya.

3. Roadmap & Konteks Proyek

CVE Lite CLI punya filosofi pengembangan yang jelas dan tidak terburu-buru ekspansi. Kapoor menerima banyak request untuk support ekosistem lain (.NET, Python), tapi posisinya konsisten: memperluas terlalu cepat akan bikin tool menjadi lebih berat dan kurang jelas buat JavaScript/TypeScript developer yang jadi target utamanya.

[ROADMAP]

Fokus saat ini: Memperdalam coverage dan remediation guidance untuk npm, pnpm, Yarn, dan Bun — sebelum ekspansi ekosistem.

Ekosistem baru (.NET, Python): Ada demand, tapi belum ada komitmen timeline. Setiap ekosistem punya lockfile format, dependency graph semantics, dan advisory source sendiri — bukan pekerjaan trivial.

AI integration: Tetap sebagai explanation layer, bukan scanner. Scan deterministic, AI bantu developer pahami dan prioritize.

OWASP governance: Sebagai OWASP Lab Project, arah pengembangan dipengaruhi community feedback dan peer review — bukan vendor roadmap.

CVE Lite CLI sudah divalidasi terhadap sejumlah real-world codebase: OWASP Juice Shop, Visual Studio Code, NestJS, Ghost CMS, Gatsby, Storybook, dan Vercel AI SDK — semua dengan documented scans dan real findings, bukan demo. Ini yang bikin status OWASP Lab Project-nya punya bobot: peer-reviewed, vendor-neutral, dan terbukti di production-grade codebases.

Source & Repo: github.com/OWASP/cve-lite-cli — MIT license.
Docs: owasp.org/cve-lite-cli
Sumber: Help Net Security (20 Mei 2026), CSO Online (26 Mei 2026), SecurityWeek (8 Juni 2026), ReversingLabs blog (10 Juni 2026).

You may also like...

1 Response

  1. July 26, 2026

    […] 6. CVE Lite CLI — Dependency Vulnerability Scanner ↗ […]

Leave a Reply

Your email address will not be published. Required fields are marked *