Lion Cipher Lab

Triage and prioritize a vulnerability scan with an LLM (then verify every CVE it cites)

Why it matters

A single vulnerability scan of one slightly-old container image routinely returns dozens to hundreds of CVEs. No human reads them all, and the reflex everyone falls back on — 'fix the CRITICALs first' — is wrong more often than it is right, because severity alone ignores context: is the vulnerable package actually reachable, is there even a fix to move to, and is anyone exploiting it in the real world? A language model is genuinely good at the boring part of that problem: it can cluster hundreds of findings, group them by package, and draft a ranked shortlist with a one-line rationale each in…

What you'll learn

Steps in this lab

  1. The problem: a scan floods you, and 'fix the CRITICALs first' is not a plan
  2. Install Docker, Trivy, and a small local model
  3. Generate a real scan of an old image as JSON
  4. Shrink the scan to a compact extract — never dump raw JSON at the model
  5. Ask the local model to cluster and prioritize (the draft)
  6. Verify spine, part 1: check every CVE against the raw scan JSON
  7. Verify spine, part 2: CVSS from NVD, 'exploited' from CISA KEV, likelihood from EPSS
  8. Measure the hit-rate — turn 'seems good' into a number
  9. The judgment: accelerator, never oracle — and KEV/EPSS/CVSS are context, not a verdict

Open the full interactive lab →