Disclosure to catalogue · a SIREN measurement · null result · does not feed the index
How many days from a CVE going public to CISA listing it as exploited?
Days from a CVE record going public to the US government listing it as exploited
No AI-era acceleration is visible in this measurement.
Time from a vulnerability record going public to the US government cataloguing it as exploited has been flat for four years, at six to ten days.
This does not show that AI is not accelerating attacks. It shows that no acceleration is visible in this measurement. Those are different sentences and this page uses the second.
- 6–10 d Median, 2023 to 2026 Four cohorts, n = 141 / 139 / 193 / 204. Flat.
- 1,726 Entries joined Every one of 1,726 catalogue entries matched an NVD record. 0 unmatched.
- 719 In the headline series Of 1,726. The rest are outside the window, not discarded.
- 47.1% Catalogued within 7 days, 2026 96 of 204 listings.
- 8.5 d Median, 2026 n = 204 listings.
This measurement was run as a candidate correlate of AI capability and it came back negative. It is published because it came back negative.
How has the lag changed over time?The series n = 719
Whole UTC calendar days from the CVE record's NVD publication date to the day CISA added it to the Known Exploited Vulnerabilities catalogue. Restricted to the 719 listings the collector calls fresh: catalogued on or after 2022-07-01, and published no more than 730 days before they were catalogued. Both restrictions are judgements about what the catalogue was doing, not statistical corrections, and the unrestricted series is drawn below so the judgement can be checked.
The compression happened between 2022 and 2023 — before the agentic-AI period — and the series has not moved since. Through all four years a quarter of entries were catalogued within a single day of publication.
Every figure the chart draws. n is printed beside each one and the cohorts are small — 42 to 204 entries — so a handful of unusual listings moves a median. "Fastest" and "slowest" are the extremes of the cohort, not outliers that were removed.
| Cohort | n | Median | 25th pct | 75th pct | Fastest | Slowest | Within 7 days | Within 30 days |
|---|---|---|---|---|---|---|---|---|
| 2022 | 42 | 102.5 d | 5 d | 313 d | 0 d | 692 d | 11 · 26.2% | 15 · 35.7% |
| 2023 | 141 | 6 d | 1 d | 88 d | 0 d | 631 d | 74 · 52.5% | 92 · 65.2% |
| 2024 | 139 | 7 d | 1 d | 89 d | 0 d | 621 d | 71 · 51.1% | 88 · 63.3% |
| 2025 | 193 | 10 d | 1 d | 76 d | 0 d | 700 d | 90 · 46.6% | 119 · 61.7% |
| 2026 | 204 | 8.5 d | 1 d | 57 d | 0 d | 685 d | 96 · 47.1% | 132 · 64.7% |
The drop from 2022 to 2023
HYPOTHESIS, not a finding: the most plausible explanation for the 2022-to-2023 drop is CISA's own cataloguing process maturing out of its launch backlog. This measurement cannot distinguish that from any other cause and does not try.
Why does the collapse look like a backlog?The artefact
The chart that looks like a finding
Grouped naively, this data shows the median lag collapsing from 1,616 days to 8 days. That is not attackers getting faster. It is a new catalogue clearing a backlog of decades-old vulnerabilities, and any chart that includes the 2022-H1 window is lying.
The 2021-H2 and 2022-H1 cohorts are CISA emptying a backlog of decades-old vulnerabilities into a new catalogue. The collapse this series shows is the backlog being cleared, not attackers getting faster. See backfill_evidence.
Artefact — do not read this as a trend
Drawn the way a naive analyst would draw it: one bar per half-year, length is the median. It is the same instrument as the chart above, on the same kind of axis, so the two can be compared directly — and the difference between them is entirely which entries were counted.
The artefact's own figures, published so that the claim that it is an artefact can be checked against them. All 1,726 entries are in here, starting with the 311 catalogued in the half-year the catalogue launched on 2021-11-03.
| Cohort | n | Median | 25th pct | 75th pct | Within 7 days | Within 30 days |
|---|---|---|---|---|---|---|
| 2021-H2 | 311 | 446 d | 177 d | 783 d | 10 · 3.2% | 20 · 6.4% |
| 2022-H1 | 474 | 1,616 d | 853 d | 2,593 d | 22 · 4.6% | 35 · 7.4% |
| 2022-H2 | 81 | 112 d | 0 d | 798 d | 29 · 35.8% | 33 · 40.7% |
| 2023-H1 | 97 | 88 d | 2 d | 767 d | 34 · 35.1% | 43 · 44.3% |
| 2023-H2 | 90 | 5 d | 0 d | 88 d | 51 · 56.7% | 60 · 66.7% |
| 2024-H1 | 73 | 12 d | 0 d | 210 d | 34 · 46.6% | 42 · 57.5% |
| 2024-H2 | 113 | 36 d | 1 d | 841 d | 44 · 38.9% | 53 · 46.9% |
| 2025-H1 | 132 | 24 d | 1 d | 251 d | 55 · 41.7% | 71 · 53.8% |
| 2025-H2 | 113 | 31 d | 2 d | 488 d | 42 · 37.2% | 55 · 48.7% |
| 2026-H1 | 146 | 24.5 d | 2 d | 329 d | 54 · 37.0% | 75 · 51.4% |
| 2026-H2 | 96 | 8.5 d | 1 d | 57 d | 45 · 46.9% | 60 · 62.5% |
The same calendar years, counted both ways. The left column restricts to listings after the catch-up window and to CVEs published within two years of being catalogued; the right column is every entry. The 2022 rows are not comparable to each other — the left one is half a year (from 2022-07-01) and the right one is all twelve months. There is no left-hand cohort before 2022 because the window begins at 2022-07-01; the cell says so rather than printing a dash.
| Year catalogued | Median — restricted | Median — every entry (artefact) |
|---|---|---|
| 2021 | no cohort — before the window | 446 d n = 311 |
| 2022 | 102.5 d n = 42 | 1,436 d n = 555 |
| 2023 | 6 d n = 141 | 12 d n = 187 |
| 2024 | 7 d n = 139 | 21.5 d n = 186 |
| 2025 | 10 d n = 193 | 26 d n = 245 |
| 2026 | 8.5 d n = 204 | 15 d n = 242 |
What was CISA actually cataloguing in 2022-H1?
474 vulnerabilities were catalogued in that half-year. 364 of them had a CVE record older than two years at the moment they were written down, leaving 110 that were published within two years of being catalogued. The oldest record in the window was published 2002-06-25 — CVE-2002-0367, Microsoft Windows, catalogued 2022-03-03: 7,191 d. A filing decision, not an attack.
Each row is the number of CVEs listed in 2022-H1 whose NVD record was published in that year. This is the proof that the naive series is an artefact: a 2022 listing of a 2002 CVE is a filing decision, not an attack.
| CVE record published | Listings | Share of 474 | Age at listing, roughly |
|---|---|---|---|
| 2002 | 1 | 0.2% | 20 years earlier |
| 2004 | 1 | 0.2% | 18 years earlier |
| 2005 | 1 | 0.2% | 17 years earlier |
| 2006 | 2 | 0.4% | 16 years earlier |
| 2007 | 1 | 0.2% | 15 years earlier |
| 2008 | 4 | 0.8% | 14 years earlier |
| 2009 | 9 | 1.9% | 13 years earlier |
| 2010 | 16 | 3.4% | 12 years earlier |
| 2011 | 6 | 1.3% | 11 years earlier |
| 2012 | 18 | 3.8% | 10 years earlier |
| 2013 | 27 | 5.7% | 9 years earlier |
| 2014 | 27 | 5.7% | 8 years earlier |
| 2015 | 37 | 7.8% | 7 years earlier |
| 2016 | 37 | 7.8% | 6 years earlier |
| 2017 | 60 | 12.7% | 5 years earlier |
| 2018 | 43 | 9.1% | 4 years earlier |
| 2019 | 66 | 13.9% | 3 years earlier |
| 2020 | 28 | 5.9% | 2 years earlier |
| 2021 | 42 | 8.9% | 1 year earlier |
| 2022 | 47 | 9.9% | same year |
| 2023 | 1 | 0.2% | published after it was catalogued |
What does one catalogue entry look like in full?
This is the vulnerability that prompted the measurement. Every row in the catalogue is this arithmetic and nothing more: two dates from two feeds, subtracted.
- Product
- Citrix NetScaler, authentication bypass
- NVD record published
- 2026-08-19
- Added to the KEV catalogue
- 2026-09-09
- Lag
- 21 d
- Its cohort
- 2026, median 8.5 d, n = 204
Published 2026-08-19, catalogued 2026-09-09: 21 days. Unremarkable against a 2026 median of 8 days over 204 listings.
Two numbers for one median, and neither is a rounding error: the
2026 cohort has an even number of entries, so its median is the midpoint of the two
middle observations — 8.5 d exactly. The collector also publishes
median_days_whole, truncated rather than rounded, so that a printed figure
is never larger than the computed one; that field reads 8. This page prints the exact value in its
charts and tables, and the sentence above is the collector's own, unedited.
What can this exploit-lag data not do?
The biggest weakness, in body text and not in a footnote
dateAdded is when CISA catalogued the vulnerability, not when exploitation began. This is a lag on a lag, and the catalogue's own latency is unknown and probably varies over time.
Published by the collector, printed here unedited. The first three are the hard ones; the other five are the conventions and exclusions a reader would otherwise have to find in the code.
- One of the three dateAdded is the day CISA CATALOGUED the vulnerability, not the day exploitation began. This measurement is therefore a lag on a lag: the catalogue's own internal latency is not published, has no reason to be constant across five years, and some unknown part of any movement in this series is CISA getting faster or slower at writing things down. This is the single biggest weakness of the measurement.
- One of the three KEV records exploitation that the US government observed and chose to publish. It undercounts by an unknown amount, and the amount may vary by vendor, by sector and by year.
- One of the three 1726 entries is the whole catalogue ever written. The annual cohorts in the headline series are 42 to 204 entries — small enough that a handful of unusual listings moves a median. Every figure is published with its n and must be shown with it.
- NVD cve.published is when the CVE record was published, which is a dated, checkable proxy for "the vulnerability became publicly known" and is not the same thing. A vendor advisory, an exploit in the wild or a conference talk can all precede it.
- 65 entries have a negative lag — catalogued before NVD published the record. They are kept in the full table and excluded from the headline series. None is clamped to zero.
- The 2022 cohort in the headline series is a half-year, not a year. It is labelled as one and its n says so.
- Restricting to listings after 2022-H1 and to CVEs published within two years of listing is a judgement about what the catalogue was doing, not a statistical correction. The unrestricted series is published alongside it so the judgement can be checked.
- Nothing here is a forecast. The series stops at the last observation and no line is extended past it.
The collector's instruction to this page, kept: Publish the n beside every figure. The annual cohorts are 42 to 204 entries and a handful of unusual listings moves a median.
Where did this exploit-lag data come from, and how do you recompute it?
CISA Known Exploited Vulnerabilities catalogue and the National Vulnerability Database (NIST). Both are works of the US Government in the public domain. Public domain is not a reason to omit the citation. Every figure must be recomputable, so the source URL and the retrieval date travel with the number. Everything on this page is as catalogued on 2026-09-26; the catalogue changes and these figures are a reading of it on one day, not a standing fact.
What is CISA Known Exploited Vulnerabilities catalogue?
https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json
- Retrieved 2026-09-26
- Requests 1, no API key
- State live
- Catalogue version 2026.09.25
- Feed released 2026-09-25T18:58:16.5029Z
- Rows seen / usable / malformed 1,726 / 1,726 / 0
- Licence US Government work, public domain (17 U.S.C. §105)
- Attribution Cybersecurity and Infrastructure Security Agency (CISA) — https://www.cisa.gov/known-exploited-vulnerabilities-catalog
Gives: cveID, vendorProject, product, dateAdded, knownRansomwareCampaignUse
Lacks: No disclosure date and no publication date. dateAdded is the only date in the file, which is why a second source is needed at all.
GET https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json — no key, no headers, one request. Join the two feeds on cveID, take whole UTC calendar days from NVD cve.published to KEV dateAdded, and every figure on this page is the arithmetic in collector/exploits.mjs over that table and nothing else.
What is NVD CVE records for the KEV set (cve.published)?
https://services.nvd.nist.gov/rest/json/cves/2.0?hasKev&resultsPerPage=2000
- Retrieved 2026-09-26
- Requests 1, no API key
- State live
- Feed timestamp 2026-09-26T19:06:59.229
- Records seen / usable / malformed 1,726 / 1,726 / 0
- Paginated no — all 1,726 in one page
- Duplicate ids 0
- Licence US Government work, public domain; NIST requests attribution
- Attribution National Vulnerability Database (NVD), NIST — https://nvd.nist.gov/developers/vulnerabilities
Gives: cve.published per cveID, for exactly the CVEs CISA has catalogued
GET https://services.nvd.nist.gov/rest/json/cves/2.0?hasKev&resultsPerPage=2000 — no key, one request; the hasKev filter returns exactly the CVEs CISA has catalogued and the whole set fits inside one 2,000-row page. Join the two feeds on cveID, take whole UTC calendar days from NVD cve.published to KEV dateAdded, and every figure on this page is the arithmetic in collector/exploits.mjs over that table and nothing else.
How was the join done?
1,726 catalogue entries against 1,726 NVD records on
cveID:
1,726 matched, 0 unmatched. Every KEV entry joined. No row is imputed and none is dropped.
NVD publishes a timestamp and CISA publishes a bare date, so both sides are reduced to their UTC calendar date before subtracting. Without that, the answer would depend on what time of day NIST pressed publish. A negative lag is a CVE that CISA catalogued before NVD published its record. Those are real and are kept in the full table; they are excluded from the headline series because they are not an interval between the two events in the order the measurement assumes.
How do 1,726 entries become 719?
The headline series is a subset and this is the whole of the subtraction. Nothing is dropped from the catalogue — the excluded rows are still in the artefact chart above and still in the published file.
| Step | Entries | Why |
|---|---|---|
| Every joined entry | 1,726 | First catalogued 2021-11-03. |
| Catalogued before the window opens | −785 | CISA launched the catalogue on 2021-11-03 and spent the following year writing down vulnerabilities that were already old. Listings up to 2022-06-30 measure the age of that backlog, not attacker speed. |
| CVE record more than two years old | −176 | A CVE published more than two years before it was listed is a backlog entry wherever it turns up in the timeline, including after the catch-up window. |
| Catalogued before the record was published | −46 | A negative lag is a CVE catalogued before NVD published its record — kept in the full table, excluded here. 65 entries in the whole catalogue have one. |
| The headline series | 719 | Fresh listings after the catch-up window |
Why are quantiles stated at these cohort sizes?
- Median. The textbook median: the middle observation, or the midpoint of the two middle observations when n is even — so an even cohort's median can be a half-day no CVE actually had, which is what a median is.
- Quartiles. Order statistics by nearest rank, sorted[ceil(q*n) - 1]. Always a lag some real CVE had. Never interpolated, because an interpolated quartile is a day count nothing in the catalogue experienced.
- Whole days. median_days_whole is median_days truncated, not rounded, so a printed figure is never larger than the computed one. Both are in the payload; the page may print either as long as it prints n beside it. This page prints the exact value.
What does the catalogue show for scale?
Over every joined entry, for scale. Not a headline figure. Across all 1,726 entries the lag runs from −290 d to 7,191 d, and 65 entries were catalogued before NVD published the record. CISA records a known ransomware campaign for 361 of them and "Unknown" for 1,365. "Unknown" is CISA saying it does not know, which is not CISA saying no, and this page does not print it as one.
How do you recompute it?
Two requests, no key, no pagination, no cache. Fetch both, join on
cveID, subtract the UTC calendar dates, and every figure above is that
arithmetic and nothing else. The code that does it is
collector/exploits.mjs.
- https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json
- https://services.nvd.nist.gov/rest/json/cves/2.0?hasKev&resultsPerPage=2000
How do you take the table?
The joined table is published beside this page, byte-identical to what the collector wrote — the build copies it verbatim rather than re-serialising, so the checksum of the file in the repository is the checksum of the file served here.
/api/exploits.json— every number above, plus all 1,726 joined entries ascveID, vendor, product, published, dateAdded, lag_days, ransomware, one row per line. One row per joined entry, sorted by CVE year then sequence. `ransomware` is 1 where CISA recorded knownRansomwareCampaignUse as "Known", 0 where CISA recorded "Unknown", and null where the field was absent. A 0 is CISA saying it does not know, which is not the same as CISA saying no — do not print it as "no".
Time from disclosure to catalogued exploitation · CISA Known Exploited Vulnerabilities catalogue retrieved 2026-09-26 · NVD CVE records for the KEV set (cve.published) retrieved 2026-09-26 · page generated 2026-09-26 19:06:58 UTC · one clock reading, and the retrieval date above is its calendar date rather than a second one.
What questions do people actually ask?
How many days from a CVE going public to CISA listing it as exploited?
No AI-era acceleration is visible in this measurement. Time from a vulnerability record going public to the US government cataloguing it as exploited has been flat for four years, at six to ten days.
How has the lag changed over time?
Restricted to fresh listings. After the opening half-year the median sits between 6 and 10 days and does not trend.
Why does the collapse look like a backlog?
The naive chart that looks like a collapse is an artefact of the catalogue clearing its launch backlog. It is drawn beside the fresh series with the evidence.
What does one catalogue entry look like in full?
Every row in the catalogue is two dates from two feeds, subtracted — one CVE shown in full.
What can this exploit-lag data not do?
This does not show that AI is not accelerating attacks. It shows that no acceleration is visible in this measurement. Those are different sentences and this page uses the second.
Where did this exploit-lag data come from, and how do you recompute it?
CISA Known Exploited Vulnerabilities catalogue and the National Vulnerability Database (NIST). Both are works of the US Government in the public domain. Public domain is not a reason to omit the citation. Every figure must be recomputable, so the source URL and the retrieval date travel with the number. Everything on this page is as catalogued on 2026-09-26.
How was the join done?
Catalogue entries are joined to NVD records on cveID. Matched and unmatched counts are printed in the source section.
How do catalogue entries become the headline series?
The headline series is a subset. The source section shows the whole subtraction — listed before the window, older than two years, and negative lag — and nothing is dropped from the catalogue artefact.
Why are quantiles stated at these cohort sizes?
Median, quartiles and whole-day notes are stated because they matter at these cohort sizes. This page prints the exact value.
What does the catalogue show for scale?
Across the full catalogue the lag range and negative-lag rows are printed for scale. "Unknown" ransomware is CISA saying it does not know, not CISA saying no.
How do you recompute it?
Two requests, no key, no pagination, no cache. Fetch both feeds, join on cveID, subtract the UTC calendar dates — every figure above is that arithmetic.
How do you take the table?
The joined table is at /api/exploits.json, byte-identical to what the collector wrote.
Does this show that AI is not accelerating attacks?
This does not show that AI is not accelerating attacks. It shows that no acceleration is visible in this measurement. Those are different sentences and this page uses the second.
Does exploit lag feed the main SIREN number?
Disclosure to catalogue · a SIREN measurement · null result · does not feed the index.
What does this measurement count in days?
Days from a CVE record going public to the US government listing it as exploited.
Does SIREN publish an exploit-lag doom score?
No. Activity tempo, not probability of harm. Exploit lag is days from CVE publication to KEV listing — not a probability of harm.
What is CISA Known Exploited Vulnerabilities catalogue?
Gives: cveID, vendorProject, product, dateAdded, knownRansomwareCampaignUse
What is NVD CVE records for the KEV set (cve.published)?
Gives: cve.published per cveID, for exactly the CVEs CISA has catalogued
What was CISA actually cataloguing in 2022-H1?
474 vulnerabilities were catalogued in that half-year, 364 of them with a CVE record older than two years at the moment they were written down. A filing decision, not an attack.
Search-shaped sibling: What AI charts does SIREN publish?.
