Rank a batch of flagged vulnerabilities by what to fix first
prioritize_remediationRank vulnerability findings other tools already returned (batch_query_vulnerabilities, query_vulnerabilities, analyze_transitive_dependencies, diff_dependencies...) by what to fix first. Pass up to 200 {packageName, cveId?, severity?, advisoryId?, currentVersion?, fixedVersion?, findingType?}. Each gets a tier: remove-now / patch-now / patch-soon / scheduled / monitor.
How the tier is decided:
remove-now: confirmed malware —
findingType: "malware", a MAL-* advisoryId, or an advisoryId whose OSV record is a malware advisory (CWE-506 or a MAL-* alias, looked up automatically). Malware is removed, not patched. Advisories that could not be looked up are listed inmalwareCheckFailedAdvisoryIds.patch-now: on the CISA KEV list (actively exploited), whatever the severity.
otherwise a score led by FIRST.org EPSS (30-day exploitation probability), with severity as a secondary signal — or the only signal when there is no EPSS data (no CVE id). An EPSS of 10% or more always ranks at least patch-soon.
The tier is a fix-ORDER across a backlog, not a severity verdict or a merge gate: a CRITICAL CVE with low EPSS can rank monitor. Never describe a monitor/scheduled finding as "low severity", and judge whether a change that INTRODUCES a vulnerability is acceptable by its severity, not this tier.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| findings | Yes | 1-200 previously-flagged vulnerability findings to rank |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ranked | Yes | ||
| summary | Yes | ||
| totalFindings | Yes | ||
| uniqueCveCount | Yes | ||
| malwareCheckFailedAdvisoryIds | Yes | advisoryIds whose OSV record could not be fetched, so whether they are malware is unknown — not confirmed safe. |