Skip to content

feat: add EPSS Priority Signal (severity x exploitation likelihood) - #1067

Merged
sonukapoor merged 6 commits into
mainfrom
feature/issue-1066-epss-priority-signal
Sep 1, 2026
Merged

feat: add EPSS Priority Signal (severity x exploitation likelihood)#1067
sonukapoor merged 6 commits into
mainfrom
feature/issue-1066-epss-priority-signal

Conversation

@sonukapoor

Copy link
Copy Markdown
Collaborator

Combines CVSS-derived severity with EPSS exploitation likelihood percentile into a single actionable priority tier per finding - the first free JS/TS vulnerability scanner to ship this classification built in.

Four tiers

  • fix_now - critical or high severity + EPSS top 10% (top 10% most likely to be exploited across all published CVEs)
  • fix_soon - critical or high severity, EPSS below top 10%
  • monitor - medium or lower severity, EPSS top 10%
  • low_priority - medium or lower severity, EPSS below top 10%

Surfaces in

  • Terminal compact mode: ⚡ Fix Now inline for fix_now findings only
  • Terminal verbose table: new EPSS Priority column alongside EPSS
  • JSON output: prioritySignal field on each finding (null when no EPSS data is available)
  • HTML report: EPSS and EPSS Priority columns in the findings table, priority badge + raw EPSS data in the expanded detail panel, a priority legend below the table with all four tiers explained

Changes

  • src/utils/priority-signal.ts - classification logic, label maps, legend descriptions
  • src/output/formatters.ts - prioritySignal added to serializeFinding()
  • src/output/printers.ts - EPSS Priority column, type-safe signal coloring, sort by percentile
  • src/output/html-reporter.ts - EPSS and EPSS Priority columns, detail panel, legend
  • src/output/multi-folder-html-reporter.ts - matching columns and legend
  • examples/priority-signal/ - example fixture with real high-EPSS packages
  • website/docs/cli-reference.md - EPSS Priority Signal section and updated flag descriptions

Closes #1066

…kelihood

Introduces a four-tier priority classification per finding by combining
CVSS-derived severity with EPSS exploitation likelihood percentile.

Tiers: fix_now (high impact + top-10% EPSS), fix_soon (high impact),
monitor (lower severity + top-10% EPSS), low_priority (all else).
Null when no EPSS data is available.

Surfaces in terminal compact mode (Fix Now label), verbose table
(EPSS Priority column), JSON (prioritySignal field), and HTML report
(column, detail badge with raw percentile, and four-tier legend).

Closes #1066
@sonukapoor
sonukapoor merged commit a2830ca into main Sep 1, 2026
9 checks passed
@sonukapoor
sonukapoor deleted the feature/issue-1066-epss-priority-signal branch September 1, 2026 22:52
@sonukapoor sonukapoor mentioned this pull request Sep 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: add EPSS Priority Signal (severity x exploitation likelihood)

1 participant