OWASP / OWASP/cve-lite-cli

feat: add cve-lite learn interactive guided learning command

Open
#512 0 comments 0 reactions 1 assignee View on GitHub

@sonukapoor is already working on this.

Since Jun 1, 2026.

enhancement onhold research
Dominant language
TypeScript
Stars
715
Forks
145
Avg merge
21h 39m
Merged PRs (30d)
66

Description

Summary

Add a cve-lite learn command that teaches dependency security through an interactive, hands-on tutorial.

Motivation

Developers who encounter CVE Lite CLI output for the first time often lack context for what direct vs transitive vulnerabilities mean, how severity levels should drive prioritization, and what the right fix action is in each case. A guided learning mode addresses this directly, turning the CLI into a teaching tool as well as a scanner.

What it does

  • Fetches scenario files from examples/learn/ on GitHub (npm lockfiles with known vulnerabilities, pre-authored Q&A steps)
  • Runs a silent scan against the vulnerable lockfile
  • Walks the user through multiple-choice questions about each finding with instant correct/wrong feedback
  • Shows the fix command, waits for the user to run it, then rescans the fixed lockfile
  • Prints a before/after finding comparison and a success message

Scenarios included

  1. Your first direct vulnerability (beginner) - lodash@4.17.20 prototype pollution, direct dep, fix with targeted upgrade
  2. Following the dependency chain (beginner) - http-cache-semantics@4.1.0 via got, transitive dep, fix by upgrading parent
  3. Prioritizing what to fix first (intermediate) - critical + high findings, severity triage, targeted fix command

Technical details

  • No new runtime dependencies (built-ins only: process.stdin raw mode, fetch, fs, os)
  • 24h cache at ~/.cache/cve-lite/learn/<id>/ so repeat runs are instant
  • Ctrl+C always restores terminal state cleanly
  • Full unit test coverage: keypress handler, scenario fetcher, session loop, runner, CLI args

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.