GitHub
ESC

kev.cr

A Crystal library that parses, queries, fetches, and serializes the CISA Known Exploited Vulnerabilities (KEV) catalog.

Surface Status Notes
Parser Strict, schema-bound against the official CISA JSON schema
Queries Vendor, product, CWE, ransomware, due-date filters
Client HTTPS, ETag / If-Modified-Since, configurable timeouts
JSON Lossless round-trip with the upstream feed (verified against live data)

Highlights

Installation

Add the dependency to your shard.yml:

dependencies:
  kev:
    github: hahwul/kev.cr

Then run:

shards install

Quick Example

require "kev"

catalog = KEV.parse(File.read("known_exploited_vulnerabilities.json"))
catalog.size                            # => 1592
catalog["CVE-2021-44228"].vendor_project # => "Apache"
catalog.query.ransomware.year(2024).to_a # ransomware-flagged 2024 CVEs

# Or fetch the live feed directly:
live = KEV.fetch