1The one-paragraph answer
2Where CVEs come from — in 3 sentences
- A researcher finds a flaw. They report it to the vendor (or the vendor's own security team finds it).
- MITRE assigns a CVE number. The vendor builds a patch in private (the embargo, typically 90 days).
- The vendor publishes the bulletin (MS17-010, cisco-sa-iosxe-webui-privesc-j22SaA4z, SSA-573348) with the patch. NVD and CISA enrich the record. Scanner vendors write detection rules within hours. Your scanner runs against your assets and finds the vulnerable ones.
3One CVE walked through, end to end
Let's follow a real CVE — CVE-2023-20198, the Cisco IOS-XE Web UI privilege escalation from October 2023.
Day 1 — Private discovery
A Cisco customer (or independent researcher) notices weird behavior in IOS-XE Web UI. They report it to Cisco PSIRT. Cisco confirms it's a privilege-escalation flaw. Cisco reserves CVE number CVE-2023-20198 from MITRE. No one outside Cisco knows yet.
Day 2–60 — Embargo
Cisco engineers write the fix (IOS-XE 17.9.4a). The NVD record for CVE-2023-20198 exists but is RESERVED and empty — nothing published yet. No public knowledge of the flaw.
Disclosure day · 2023-10-16
Cisco publishes the bulletin cisco-sa-iosxe-webui-privesc-j22SaA4z on their PSIRT site. The patch is available immediately. NVD enriches: CVSS 10.0, CWE-269. CISA adds it to KEV the next day.
Day +1 to +2 — Scanner content update
Qualys' content team reads the Cisco bulletin. They write a QID (let's say QID 92121) — a detection rule that says "if you see IOS-XE version < 17.9.4a on a Cisco device, the asset is vulnerable to CVE-2023-20198." Qualys pushes that QID out to all customer subscriptions automatically.
Your next scan
Qualys runs (continuously / nightly / on your schedule). For each Cisco IOS-XE asset on version < 17.9.4a, it logs { QID: 92121, CVE: ["CVE-2023-20198"], asset: switch-001, ... } in Qualys VMDR.
Mythal picks it up
Mythal's Scanner Liaison agent polls Qualys' API every 5 minutes. It pulls the new findings, extracts the CVE list, creates a Mythal Finding record for each affected asset, and hands them to the Supervisor agent — which kicks off the full 12-agent loop.
That's the entire chain. Mythal's job starts at stage 6.
4Glossary — who's what, where it lives
5Direct answers to your questions
For enrichment — yes, but as a secondary source. The Threat Intel agent and Patch Hunter agent can query NVD (REST API), CISA KEV (live JSON feed), and vendor PSIRT APIs (Microsoft MSRC API, Cisco PSIRT openVuln). These are subscriptions, not crawls — we hit known endpoints, not random sites.
Secondary sources (enrichment): NVD, CISA KEV, vendor PSIRT feeds.
We don't go fetch new CVEs from "the internet" on a timer. We subscribe to authoritative endpoints.
{
"QID": 92121,
"CVE": ["CVE-2023-20198"],
"host_dns": "switch-001.csx.local",
"severity": 5,
"first_found": "2023-10-17T03:14:00Z"
}
Scanner Liaison just extracts the CVE and uses that as the canonical identifier. We keep the QID stored as a back-reference for round-trip lookups.
In the demo today, NVD-style enrichment is bundled (we don't actually call NVD on Azure). In production, we wire to the real NVD API 2.0 with local caching.
- Customer's scanner — the firehose. 80%+ of findings.
- CISA KEV live fetch — for the actively-exploited tier. Mythal pulls this on the Sync KEV button.
- Vendor PSIRT feeds — direct subscriptions to Microsoft, Cisco, Siemens.
Exceptions where CVE is public BEFORE a patch:
- Zero-days exploited in the wild — researcher publishes without coordination because attackers are already using it.
- Vendor non-response — researcher gives up after 90 days and discloses.
- Disagreements — vendor disputes severity; researcher discloses anyway.
On a schedule (continuous):
- Scanner Liaison polls your scanner APIs every 5–15 minutes.
- Threat Intel polls CISA KEV catalog every few hours.
- Vendor PSIRT RSS feeds where supported.
- NVD lookup for a specific CVE (cached after first hit).
- Vendor advisory page lookup (cached).
6What's real today vs production
| Source | Demo today | Production |
|---|---|---|
| Scanner findings | Synthetic via scenarios + real CISA KEV match | Real Qualys/Tenable/Wiz/Claroty/etc. API polling |
| CISA KEV catalog | Real live fetch — works today (the Sync KEV button) | Real live fetch + scheduled hourly poll |
| NVD lookups | Bundled / synthetic | Real NVD API 2.0 with local cache |
| Vendor PSIRT | Synthetic advisories | Real MSRC API · Cisco openVuln · Siemens CSAF · Red Hat Product Security |
7The line for CSX
8The one-pager — what to remember
- CVE is just a serial number. MITRE assigns it. It exists before the details are public.
- The vendor PSIRT publishes the advisory when they release the patch. That's when the world learns the details.
- NVD and CISA enrich the record with CVSS scores, references, KEV listing.
- Scanner vendors translate the advisory into detection rules (QIDs, plugins) — usually within hours.
- Your scanner finds the vulnerable asset on its next scan.
- Mythal reads the finding from the scanner's API and runs the agent loop. We don't crawl the internet.
- Mythal can also subscribe directly to NVD / CISA KEV / vendor PSIRTs as secondary sources, for cases where we want to see things before the scanner's detection rule is shipped.
Pair with: Scenarios explained · Execution explained