kevmap

Method

Every figure on this site is computed at build time from the snapshots listed here. Nothing is hand-entered. This page is meant to let a sceptical reader reproduce the headline numbers from the published data.

Sources and snapshots for this build

SourceVersion / commitFetchedIntegrity
CISA KEV
github.com/cisagov/kev-data
catalogVersion 2026.08.21, released 2026-08-21, 1674 entries2026-08-23T05:46Zsha256 137884960e3f8016…
ATT&CK Enterprise STIX
github.com/mitre-attack/attack-stix-data
v19.2, 26086 objects2026-08-23T05:46Zsha256 dc1639caa5501d72…
CTID Mappings Explorer
github.com/center-for-threat-informed-defense/mappings-explorer
commit 705ca1b879 (2026-08-12)
kev-02.13.2025_attack-15.1-enterprise.json — ATT&CK 15.1, KEV 02/13/2025, 806 objects, 296 CVEs
kev-02.13.2025_attack-15.1-mobile.json — ATT&CK 15.1, KEV 02/13/2025, 8 objects, 3 CVEs
kev-07.28.2025_attack-16.1-enterprise.json — ATT&CK 16.1, KEV 07/28/2025, 1183 objects, 419 CVEs
kev-07.28.2025_attack-16.1-mobile.json — ATT&CK 16.1, KEV 07/28/2025, 45 objects, 14 CVEs
2026-08-23T05:46Zgit
SigmaHQ/sigma
github.com/SigmaHQ/sigma
commit da9bb07d64 (2026-08-19), 3783 rules under rules*/2026-08-23T05:46Zgit
CAPEC STIX (for one page only)
github.com/mitre/cti
559 patterns, newest modified 2023-01-242026-08-23T05:46Zsha256 ee6244f48259c196…

The raw snapshots are committed to the build repository on every run, so any past build can be reproduced exactly.

Definitions — fixed, and stated once

Mapped
A KEV CVE with at least one CTID mapping object of any mapping_typeexploitation_technique, primary_impact or secondary_impact — in either ATT&CK Enterprise or Mobile domain files. This is the more generous of the two defensible readings; it was chosen once and will not be changed quietly. The stricter figure, counting only exploitation_technique, is 410 of 1674 (24.5%) and is shown wherever the headline appears. uncategorized objects are ignored (there are none in the current files).
Stale
Mapped, and at least one mapped Enterprise technique ID is revoked, deprecated, or absent in ATT&CK v19.2. A technique that merely changed name is flagged on the page but does not make the entry stale. Mobile-domain mappings are not checked against the Enterprise bundle and never trigger staleness.
Unmapped
No CTID mapping object for the CVE. The page shows CISA's fields and nothing else. No technique is displayed for an unmapped CVE anywhere on the site, including Sigma rules' technique tags on that CVE's page.
Sigma coverage
For mapped CVEs only. Full: every live mapped Enterprise technique has ≥1 SigmaHQ rule whose tags include exactly attack.<technique id, lowercase>. Partial: some do. None ("mapped but uncovered"): none do. Parent-technique tags do not count for sub-techniques. Deprecated Sigma rules (under deprecated/) are excluded; rules under every rules*/ directory are included.
Added since snapshot
dateAdded strictly later than the latest CTID KEV snapshot date (2025-07-28).
Log source
The name field of an analytic's x_mitre_log_source_references entry, slugified. There is no log-source object type in ATT&CK; these are embedded structures. Channels are the channel field verbatim.
KEV CVEs reachable from a log source
CVEs with a mapping to a technique that has a detection strategy containing an analytic that references the log source.

The traversal

attack-pattern  ◀──[relationship: detects]──  x-mitre-detection-strategy
                                                   │ x_mitre_analytic_refs[]
                                                   ▼
                                              x-mitre-analytic
                                                   │ x_mitre_log_source_references[]  { name, channel, x_mitre_data_component_ref }
                                                   ▼
                                              x-mitre-data-component

Integrity observed in v19.2: 697 live detects relationships over 697 live techniques (0 live techniques without one); 1758 analytics; 4182 log-source references, every one resolving to a data component. The build fails if any reference dangles. The build also asserts one worked example on every run: T1055.011 ← DET0217 → AN0608 (Windows) → WinEventLog:Sysmon EventCode=10 → DC0035 Process Access.

Reproducing the headline

  1. Download /data/kev-coverage.json. Count entries: 1674. Count s != "unmapped": 424. Divide: 25.3%.
  2. Or from the sources: union the capability_id values across the CTID KEV mapping files listed above (the Enterprise and Mobile files for the newest ATT&CK version, plus older files — 0 CVEs appear only in an older file), intersect with KEV cveIDs. 424 distinct CVEs are mapped; 424 of those are in today's KEV.
  3. For "added since snapshot": filter KEV by dateAdded > "2025-07-28": 283 entries; of those, 0 appear in the mapping files.
  4. For Sigma: walk every rules*/**/*.yml, yaml.safe_load_all, collect tags matching ^attack\.t\d{4}(\.\d{3})?$. 3312 of 3783 rules carry one; 400 distinct techniques. CVE tags match ^cve\.\d{4}-\d{4,}$: 208 rules, 145 distinct CVEs, yielding 199 (CVE, technique) pairs over 126 CVEs — which is why Sigma is used here as technique → detection content and not as a CVE → technique source.

Things this site deliberately does not do

Known limitations