12 · About

What this is, and how to check it

vulnerabilitydata.io exists to establish the true state of how AI, across closed models, open-weight models and attack harnesses, is changing real-world security outcomes: breaches, losses and disruption first, the vulnerabilities and exploitation behind them second. Every finding is graded by its evidence, and where no source can yet see AI's role, the site says so plainly.

What it measures

The question is what AI is doing to real-world security, so the site starts from what happens to victims: breaches, money lost and paid, how fast attackers move, and how long they go undetected. Vulnerabilities and exploitation are the layer underneath that explains those outcomes, and they come second.

AI comes in three kinds here, and they are not equally visible:

  • Closed models run by a provider (Anthropic, OpenAI, Google and others). Their misuse is seen by the provider, which publishes what it chooses to.
  • Open-weight models anyone can download and run. Hosted by a third party, they are visible to that host, which may or may not report misuse; run on the attacker's own hardware, they leave no record with anyone and show up mainly when someone takes malware or an intrusion apart.
  • Attack harnesses, agent tools that chain models into an attack. They show up through incident-response work, researchers and the tools' own public releases.

Because of that, a count of incidents by kind of AI shows what each observer could see, not how common each kind is, and the site never presents it as prevalence.

How findings are graded

Each documented case of AI involvement carries one grade: independently confirmed, confirmed by an authority or the victim, self-reported by the model provider, a research demonstration, or asserted. Outcome figures that carry an AI tag, such as the FBI's AI-related fraud losses, count only what victims noticed or reported, so they are shown as lower bounds and never as AI's share of the whole.

What no source can see yet

  • No breach can be shown to be AI-caused from the victim's side: a phishing email or an exploit does not record whether a model wrote it.
  • Open-weight models run privately leave no provider record.
  • The world without AI is never observed, so every estimate of AI's effect rests on stated assumptions, and the site names them.

Where a question cannot be answered yet, the page says which measurement is missing instead of guessing.

Who runs it

Built and maintained by Daniel Miessler at Unsupervised Learning, with research and collection done by his AI system. It is not affiliated with Microsoft, MITRE, CISA, the SEC, or any vendor or publisher named here.

Methodology in brief

  • Every number traces to a named, dated source, and where two sources disagree both are kept in the data.
  • Missing or unreliable figures are shown as gaps, never filled in or smoothed.
  • Interpretation is marked as interpretation. The site states what the data shows, what it is consistent with, and what it cannot answer.
  • Breach sources count different populations, so they are shown side by side and never added into one total.
  • The site will not build while any data file has no section covering it on the Analysis page. That check confirms coverage exists, not that every sentence still matches the latest numbers, so the analysis is re-read whenever data changes.

Full detail, corrections and known limitations: Methodology →

How the data is gathered

Four kinds of data feed the site.

  • Outcome reports. Nine report families (IC3, DBIR, IBM, Chainalysis, Coveware, Coalition, CrowdStrike, Unit 42 and M-Trends) are read edition by edition, and every figure is entered with its URL and the quoted span it rests on. The full list is on Sources.
  • Curated vulnerability and breach series. Annual and monthly publications (Zero Day Initiative's Patch Tuesday reviews, CVE.org and NVD annual figures, MITRE's CWE Top 25, ITRC, Verizon DBIR, IBM, Mandiant) are read when each one is published, and every figure is entered with its source URL.
  • The AI-involvement ledger. Each documented case is re-read from its primary document, with the quoted span its grade rests on.
  • Live collectors. Seven public feeds (CISA KEV, CVE.org records, ransomware.live, SEC EDGAR (8-K Items 1.05 and 8.01), Have I Been Pwned, the California Attorney General's breach list and HHS OCR's breach portal) are fetched weekly by collectors that live in Substrate. Each output file carries a provenance block saying where it came from, when, and how. A feed that fails keeps its last good data and is named in the run log. New collections reach this site after a review.

Every source, grouped by topic: Sources →

How to reproduce

All data behind every chart is public in Substrate, under its vulnerability and breach dataset. To rebuild the live series yourself:

git clone https://github.com/danielmiessler/substrate
cd substrate
export SEC_USER_AGENT="Your Name you@example.com"   # SEC requires a contact
bun Data/Vulnerability-And-Breach-Data/collectors/collect.ts

That writes the live series and a record of the run into the dataset's live folder. No API keys are needed. The rules that compute each conjecture's status sit beside the collectors, and the dataset's methodology note explains every computed series and its biases.

Corrections

If a number is wrong, open an issue on Substrate with the figure and the source that contradicts it. Corrections are recorded in the dataset's update log.

For agents

Everything this site shows is available to software as JSON, without scraping a page and without a key. Start from the API index, which lists every dataset with what it holds, how many records it has, how often it updates and where its numbers come from:

curl -s https://vulnerabilitydata.io/api/v1/index.json

Each dataset is one file at /api/v1/<name> with a .json ending, served exactly as the pages use it, with open CORS. Each IP address may make 120 requests every 60 seconds; every answer carries RateLimit headers, and a path that is not a dataset answers a JSON 404.

The vulnerabilitydata command reads the same files and is built for agents: piped output is JSON only, errors go to stderr as JSON, and exit codes are fixed. Install it (the script checks the bundle's SHA-256 first), then ask it for its whole command catalog:

curl -fsSL https://vulnerabilitydata.io/cli/install.sh | sh
vulnerabilitydata help --json

References: API · CLI · Rate limits. The same in plain text for language models: /llms.txt.