PRACTITIONER GUIDE | VULNERABILITY MANAGEMENT
Practitioner GuideUpdated 12 min read

Automating Patch Prioritization from the CISA Known Exploited Vulnerabilities Catalog

1,200+
CVEs in the CISA KEV catalog as of 2026, all confirmed as actively exploited in the wild
7 days
CISA's required remediation window for KEV vulnerabilities affecting federal agencies, a useful SLA benchmark for any organization
4x
more likely to be exploited in the wild than a CVSS 9.0+ vulnerability that is not in the KEV catalog, per empirical research combining EPSS and KEV signals

SponsoredRetool

Retool's new app builder is where AI-generated code ships safely

Building apps with AI is easy. Getting them to production safely is another story.

Start building for free today

CVSS scores measure theoretical severity. The CISA Known Exploited Vulnerabilities (KEV) catalog measures actual exploitation. A CVE with a CVSS score of 7.5 that is in the KEV catalog is empirically more dangerous than a CVE with a CVSS score of 9.8 that is not. Most vulnerability management programs are still sorted by CVSS, they prioritize patching based on potential impact rather than observed exploitation. This guide builds the automation layer that makes KEV the primary prioritization signal: pulling the catalog via API, matching it against your scanner findings, and creating automatic P1 alerts when a KEV-listed CVE exists in your environment.

Why CVSS Alone Is a Poor Prioritization Signal

CVSS was designed to measure the theoretical worst-case impact of a vulnerability, not the likelihood of exploitation. The result is that most CVSS-sorted vulnerability queues are dominated by vulnerabilities that have never seen exploitation in the wild, and vulnerabilities that are being actively exploited sit buried at position 47 in the queue because their CVSS score is only 7.2.

The research evidence is clear: studies combining EPSS (Exploit Prediction Scoring System) and KEV data show that a vulnerability in the KEV catalog is approximately 4 times more likely to be exploited in a real attack than a CVSS Critical vulnerability not in KEV. An organization that patches all KEV-listed vulnerabilities in its environment within 14 days closes more real-world risk than one that patches all CVSS 9.0+ vulnerabilities in the same timeframe.

The barrier to using KEV as a primary signal has been manual: security teams have had to manually compare their scanner output against the catalog. The KEV API removes that barrier entirely.

Step 1: Pull the KEV Catalog via API

CISA publishes the KEV catalog as a JSON endpoint that is freely accessible without authentication:

https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json

The JSON structure includes for each entry:

  • cveID: The CVE identifier
  • vendorProject: The affected vendor
  • product: The specific product
  • vulnerabilityName: Human-readable description
  • dateAdded: When CISA added it to the catalog
  • shortDescription: Brief description
  • requiredAction: CISA's recommended mitigation
  • dueDate: Required remediation date for federal agencies
  • knownRansomwareCampaignUse: Whether it has been used in ransomware

A simple Python script to pull and parse the catalog:

import requests
import json

def get_kev_catalog():
    url = 'https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json'
    response = requests.get(url, timeout=30)
    response.raise_for_status()
    data = response.json()
    # Build a dict for O(1) lookup by CVE ID
    return {v['cveID']: v for v in data['vulnerabilities']}

kev = get_kev_catalog()
print(f'Loaded {len(kev)} KEV entries')
print(f'Most recent addition: {max(v["dateAdded"] for v in kev.values())}')

Schedule this to run daily. Cache the output locally and diff against the previous run to identify newly added entries.

Free daily briefing

Briefings like this, every morning before 9am.

Threat intel, active CVEs, and campaign alerts, distilled for practitioners. 50,000+ subscribers. No noise.

Step 2: Cross-Reference with Your Vulnerability Scanner

Each major scanner has an API for retrieving findings that can be cross-referenced against the KEV catalog.

Tenable.io:

import tenable
from tenable.io import TenableIO

tio = TenableIO(access_key='YOUR_ACCESS_KEY', secret_key='YOUR_SECRET_KEY')

# Get all plugin findings
kev_findings = []
for vuln in tio.exports.vulns(
    filters=[('severity', 'gte', '4')]
):
    cve_ids = vuln.get('cve', [])
    for cve in cve_ids:
        if cve in kev:
            kev_findings.append({
                'asset': vuln['asset']['hostname'],
                'cve': cve,
                'kev_entry': kev[cve],
                'scanner_severity': vuln['severity'],
                'plugin_name': vuln['plugin']['name']
            })

print(f'Found {len(kev_findings)} KEV vulnerabilities in environment')

Qualys VMDR: Use the Detection API with a CVE filter. Qualys supports direct KEV integration as of 2024 via the Threat Intelligence module, check your Qualys console for the KEV tag that auto-tags findings matching the catalog.

Rapid7 InsightVM: Use the Vulnerabilities API to retrieve findings and filter by CVE. Rapid7 also provides native KEV integration in their Threat Command module.

Step 3: Automate P1 Escalation and Alerting

Once you have the cross-referenced finding list, automate the escalation. The goal is zero manual steps between CISA adding a CVE to the KEV catalog and your security team having an actionable alert.

Daily differential check, new KEV entries in your environment:

import json
from datetime import date, timedelta

# Load yesterday's KEV catalog
with open('kev_yesterday.json') as f:
    kev_yesterday = json.load(f)

# Today's catalog (fetched above)
kev_today = get_kev_catalog()

# New entries added in the last 24 hours
new_entries = {
    cve: entry for cve, entry in kev_today.items()
    if cve not in kev_yesterday
}

# Cross-reference new entries against your environment
new_critical_findings = [
    finding for finding in get_scanner_findings()  # your scanner API call
    if finding['cve'] in new_entries
]

if new_critical_findings:
    send_p1_alert(new_critical_findings)  # Slack, PagerDuty, Jira ticket creation

Jira ticket creation for KEV findings: Create a Jira ticket with P1 priority automatically for each KEV vulnerability found in your environment. Include the CISA required action, the dueDate, and whether the vulnerability has known ransomware campaign use. This creates an audit trail and ensures the finding is tracked to remediation.

Step 4: Set Up Tenable or Qualys Native KEV Integration

Both Tenable and Qualys offer native KEV integration that does not require custom scripting.

Tenable.io native KEV: In Tenable.io, create a Dashboard widget filtered to CISA KEV. Under Vulnerability Management > Explore > Vulnerabilities, filter by 'CISA KEV' in the Tag section. Tenable automatically updates this filter as CISA adds new entries.

For automated ticket creation in Tenable: configure a Jira integration under Settings > Integrations > Jira, then create a Notification rule that triggers on any finding matching 'CISA KEV = true' with severity >= Medium.

Qualys VMDR native KEV: Qualys introduced KEV-based prioritization as a TruRisk scoring factor. In the VMDR dashboard, the TruRisk score now incorporates KEV status, EPSS, and active exploitation signals into a composite risk score. Filter your findings by TruRisk score rather than CVSS to get KEV-weighted prioritization automatically.

Rapid7 InsightVM: Create a Dynamic Asset Group for assets with any KEV-listed vulnerability: use the query vulnerability.cveIds CONTAINS cisa_kev_ids (available in the InsightVM query builder). This group automatically updates as new KEV entries are added and as new assets are scanned.

Building Your KEV SLA Framework

CISA requires federal agencies to remediate KEV vulnerabilities within 14 days for internet-facing systems and less for critical infrastructure. For non-federal organizations, use this as a baseline and adjust based on your risk tolerance:

Recommended SLAs:

  • KEV + internet-exposed asset: 7 days
  • KEV + ransomware use + any exposure: 3 days
  • KEV + internal-only asset: 14 days
  • KEV + no fix available: document compensating controls within 7 days

Track SLA compliance by calculating: (date_remediated - date_kev_added) for each finding. Report this metric monthly to show the program's effectiveness. An organization that patches all KEV findings in its environment within SLA is operating a more defensible posture than one with a perfect CVSS-sorted queue.

The bottom line

The KEV catalog is a free, daily-updated, empirically validated list of vulnerabilities that real attackers are actively exploiting. Cross-referencing it against your scanner output takes 20 lines of Python or five minutes in your scanner's UI. The teams that have done this consistently close the vulnerabilities that matter most, weeks before they would have appeared at the top of a CVSS-sorted queue.

Frequently asked questions

Is the CISA KEV catalog only relevant for U.S. federal agencies?

No. CISA's remediation requirements apply to federal agencies, but the catalog itself is the best publicly available list of vulnerabilities under active exploitation globally. Any organization can use it as a prioritization signal. The 14-day SLA is a useful benchmark regardless of regulatory requirements.

How often is the CISA KEV catalog updated?

CISA typically adds new entries to the catalog multiple times per week. The dateAdded field in the JSON tells you when each entry was added. Run your cross-reference check daily to catch new additions within 24 hours.

What is EPSS and how does it combine with KEV for prioritization?

EPSS (Exploit Prediction Scoring System) assigns each CVE a probability score (0-1) representing the likelihood it will be exploited in the next 30 days, based on machine learning across historical exploitation data. A vulnerability that is both in the KEV catalog (confirmed exploited) and has a high EPSS score (predicted to continue being exploited) is your highest-priority finding. Use KEV for confirmed exploitation, EPSS for predicted future exploitation.

Does the KEV catalog cover all actively exploited vulnerabilities?

No. CISA adds vulnerabilities to the catalog based on confirmed evidence of exploitation reported by government agencies, CISAs intelligence sharing partners, and public sources. There is typically a lag of days to weeks between exploitation being observed in the wild and a CVE appearing in the catalog. Pair KEV with threat intelligence feeds and vendor advisories for the earliest possible signal.

What if a KEV-listed vulnerability has no available patch?

CISA requires a mitigating action even when no patch exists. Common compensating controls: disable the affected feature or service, isolate the affected system from untrusted networks, apply vendor-recommended configuration mitigations, or add WAF rules targeting the specific exploit pattern. Document the compensating control, the date applied, and the date you will re-evaluate for a patch.

How do I report KEV-based patching compliance to leadership without exporting raw scanner data?

Calculate two metrics on a weekly cadence: KEV coverage rate (the percentage of KEV-listed CVEs present in your environment that have been remediated or have documented compensating controls) and KEV mean time to remediate (the average number of days between dateAdded in the CISA catalog and the scanner confirming the vulnerability closed on all affected assets). Export these from your cross-reference script as a time-series and visualize them in a dashboard -- most SIEM platforms support custom metric widgets. A coverage rate trending toward 100% within your SLA window is the clearest demonstration that the program is functioning. These two numbers are operationally meaningful, not dependent on CVSS theatrics, and comparable to the CISA-mandated federal benchmarks, which makes them credible in board-level conversations about cyber risk posture.

Sources & references

  1. CISA KEV catalog
  2. CISA KEV API documentation
  3. EPSS vulnerability prioritization research

Free resources

25
Free download

Critical CVE Reference Card 2025–2026

25 actively exploited vulnerabilities with CVSS scores, exploit status, and patch availability. Print it, pin it, share it with your SOC team.

No spam. Unsubscribe anytime.

Free download

Ransomware Incident Response Playbook

Step-by-step 24-hour IR checklist covering detection, containment, eradication, and recovery. Built for SOC teams, IR leads, and CISOs.

No spam. Unsubscribe anytime.

Free newsletter

Get threat intel before your inbox does.

50,000+ security professionals read Decryption Digest for early warnings on zero-days, ransomware, and nation-state campaigns. Free, daily, no spam.

Unsubscribe anytime. We never sell your data.

Eric Bang
Author

Founder & Cybersecurity Evangelist, Decryption Digest

Cybersecurity professional with expertise in threat intelligence, vulnerability research, and enterprise security. Covers zero-days, ransomware, and nation-state operations for 50,000+ security professionals every morning.

Black Hat Giveaway

Win a $2,495 Black Hat pass.

Full-access to Black Hat USA 2026 in Las Vegas. Subscribe free to enter.

Joins Decryption Digest daily briefing. Unsubscribe anytime.

Giveaway: Black Hat USA 2026 Full-Access Pass ($2,495 value)

Details →
Daily Briefing

Subscribe to enter the giveaway

Every subscriber is automatically entered. You also get daily threat intel every morning: zero-days, ransomware, and nation-state campaigns. Free. No spam.

Already subscribed? You're already entered.

Giveaway

Win a $2,495 Black Hat USA 2026 pass.