🔒 cyber_vuln¶
Cybersecurity vulnerability data. Canonical vulnerability records from NVD, active exploitation catalog from CISA KEV, CWE taxonomy, and cross-source identifier mappings. Part of the govdata cyber sub-domain.
14 datasets · 67 columns
cwe_catalog · table¶
MITRE Common Weakness Enumeration (CWE) catalog, one row per CWE ID (e.g., CWE-79) with name, abstraction level (Class/Base/Variant/Compound), structure, status, and description. Full-catalog snapshot sourced from cwec_latest.xml.zip, refreshed weekly. Canonical dimension joined to NVD CVEs via vulnerability_cwes, to CISA KEV via kev_cwes, and to cyber_threat.owasp_top10 in the vuln_threat_chain view.
| Column | Type | Null | Description |
|---|---|---|---|
cwe_ |
string | no | CWE identifier (e.g., CWE-79) |
name |
string | yes | CWE name |
abstraction |
string | yes | Abstraction level (Class, Base, Variant, Compound) |
structure |
string | yes | Structure (Simple, Chain, Composite) |
status |
string | yes | Status (Draft, Stable, Deprecated, Incomplete, Obsolete) |
description |
string | yes | Short description |
extended_ |
string | yes | Extended description |
parent_ |
string | yes | Pipe-delimited parent CWE IDs (ChildOf relationships) |
cwe_ |
string | yes | Canonical URL on cwe.mitre.org |
vulnerabilities · table¶
NVD CVE 2.0 canonical vulnerability records, one row per CVE, partitioned by publication year and quarter. NVD's own catalog spans 1999-present (~347k CVEs total), but this table's own observedCoverage below is the source of truth for what's actually loaded here — check it rather than assuming the two match. Stores CVSS v2 and v3.1 base scores with their vector strings, plus a CVSS v4.0 base score (no v4.0 vector column), vuln_status, and pipe-delimited CWE IDs. The canonical CVE registry — see kev_catalog for the smaller subset known to be actively exploited, and vulnerability_cwes for the CVE-to-CWE junction.
| Column | Type | Null | Description |
|---|---|---|---|
cve_ |
string | no | CVE identifier (e.g., CVE-2021-44228) |
published |
string | yes | Publication date (ISO 8601) |
last_ |
string | yes | Last modification date (ISO 8601) |
vuln_ |
string | yes | Vulnerability status (Analyzed, Modified, Rejected, etc.) |
description_ |
string | yes | English description |
cvss_ |
double | yes | CVSS v2 base score |
cvss_ |
string | yes | CVSS v2 vector string |
cvss_ |
double | yes | CVSS v3.1 base score |
cvss_ |
string | yes | CVSS v3.1 vector string |
cvss_ |
string | yes | CVSS v3.1 severity (LOW, MEDIUM, HIGH, CRITICAL) |
cvss_ |
double | yes | CVSS v4.0 base score when present |
cwe_ |
string | yes | Pipe-delimited CWE IDs |
source |
string | yes | Feed source (nvd) |
pub_ |
integer | yes | Publication year (emitted by transformer from published; drives year partition routing) |
pub_ |
integer | yes | Publication month 1-12 (emitted by transformer from published; drives quarter routing) |
vulnerability_cwes · table¶
Junction table of CVE→CWE pairs, materialized from NVD at ingest time. One row per (cve_id, cwe_id) pair. Replaces query-time UNNEST on the pipe-delimited cwe_ids column in vulnerabilities.
| Column | Type | Null | Description |
|---|---|---|---|
cve_ |
string | no | CVE identifier |
cwe_ |
string | no | CWE identifier (e.g., CWE-79) |
pub_ |
integer | yes | Year from CVE-YYYY-NNN (emitted by transformer; drives year partition routing) |
pub_ |
integer | yes | Month placeholder 1 (emitted by transformer; CVE-year-only routing → Q1) |
kev_catalog · table¶
CISA Known Exploited Vulnerabilities (KEV) catalog: one row per CVE known to be actively exploited in the wild, ~1,585 entries. Carries vendor_project, product, vulnerability_name, date_added to KEV, the FCEB remediation due_date, and a known_ransomware_use flag — no CVSS scores are included here. A curated subset of the full NVD catalog in vulnerabilities (join on cve_id); see kev_enriched or kev_cross_threat for KEV joined with NVD CVSS scores and CWE names.
| Column | Type | Null | Description |
|---|---|---|---|
cve_ |
string | no | CVE identifier |
vendor_ |
string | yes | Vendor or project name (KEV vendorProject) |
product |
string | yes | Product name |
vulnerability_ |
string | yes | Vulnerability name (KEV vulnerabilityName) |
date_ |
string | yes | Date added to KEV catalog (YYYY-MM-DD) |
short_ |
string | yes | Short description |
required_ |
string | yes | Required action for federal agencies |
due_ |
string | yes | Remediation due date for FCEB agencies (YYYY-MM-DD) |
known_ |
string | yes | Known ransomware campaign use (Known or Unknown) |
notes_ |
string | yes | Pipe-delimited URLs split from KEV notes field on semicolon |
cwes |
string | yes | Pipe-delimited CWE IDs from KEV cwes array (may be empty) |
catalog_ |
string | yes | Catalog version at ingest time (YYYY.MM.DD) for delta detection |
kev_cwes · table¶
Junction table of KEV CVE→CWE pairs, materialized from CISA KEV at ingest time. One row per (cve_id, cwe_id) pair. Replaces query-time UNNEST on the pipe-delimited cwes column in kev_catalog.
| Column | Type | Null | Description |
|---|---|---|---|
cve_ |
string | no | CVE identifier |
cwe_ |
string | no | CWE identifier (e.g., CWE-78) |
osv_vulnerabilities · table¶
OSV (Open Source Vulnerabilities) records for open-source package ecosystems (PyPI, npm, Go, Maven, RubyGems, NuGet, Packagist, Hex, Pub, CRAN), one row per OSV entry (osv_id, e.g. GHSA-xxxx, PYSEC-2021-xxx), partitioned by ecosystem and refreshed weekly. Carries severity type/score, package name and purl, and pipe-delimited alias IDs including CVE IDs where assigned — includes OSV-native entries with no CVE assignment. Not part of vuln_cross_refs, which is sourced solely from GitHub Security Advisories.
| Column | Type | Null | Description |
|---|---|---|---|
osv_ |
string | no | OSV identifier (e.g., GHSA-xxxx, OSV-2021-xxx, PYSEC-2021-xxx) |
modified |
string | no | Last modification timestamp (ISO 8601) |
published |
string | yes | Publication timestamp (ISO 8601) |
withdrawn |
string | yes | Withdrawal timestamp if entry was retracted (ISO 8601) |
aliases |
string | yes | Pipe-delimited alias IDs (CVE IDs, GHSA IDs, etc.) |
summary |
string | yes | Short summary |
details |
string | yes | Detailed description (may include Markdown) |
severity_ |
string | yes | Severity type (CVSS_V3, CVSS_V4, etc.) |
severity_ |
string | yes | CVSS vector string or numeric score |
ecosystem |
string | yes | Package ecosystem (PyPI, npm, Go, Maven, etc.) |
package_ |
string | yes | Package name within the ecosystem |
package_ |
string | yes | Package URL (purl) for the affected package |
schema_ |
string | yes | OSV schema version |
database_ |
string | yes | JSON blob of database-specific metadata |
vuln_cross_refs · table¶
Cross-reference mappings from CVE identifiers to external advisory IDs, sourced solely from GitHub Security Advisories (GHSA) via the GraphQL API (single source per the one-table = one-source rule; NVD/OSV cross-refs are derived as SQL views over their own tables). Dedup key is (cve_id, external_id, external_source); external_source is 'ghsa'. APPEND LOG: the incremental delta crawl appends changed advisories each run, so this base table may hold exact-duplicate rows across runs. Query the vuln_cross_refs_unique view for one row per (cve_id, external_id, external_source).
| Column | Type | Null | Description |
|---|---|---|---|
cve_ |
string | no | CVE identifier (CVE-YYYY-NNNNN normalized form) |
external_ |
string | no | External identifier (GHSA ID, NVD URL slug, etc.) |
external_ |
string | no | Source system (ghsa, nvd, cisa, mitre, github, cve) |
url |
string | yes | URL of the external advisory or reference |
advisories · table¶
CISA cybersecurity advisory metadata, one row per advisory (e.g., AA24-001A, ICSA-24-001-01), partitioned by year. CISA's own feed goes back to 2017, but this table's own observedCoverage below is the source of truth for what's actually loaded here — check it rather than assuming the two match. Refreshed weekly. Carries title, published_date, severity label, pipe-delimited CVE IDs mentioned in the advisory, and a short affected_systems description. Sourced from CISA's official CSAF 2.0 JSON feed (cisagov/CSAF GitHub repo).
| Column | Type | Null | Description |
|---|---|---|---|
advisory_ |
string | no | Advisory identifier (e.g., AA24-001A, ICSA-24-001-01) |
source |
string | no | Advisory source (cisa) |
title |
string | yes | Advisory title |
published_ |
string | yes | Publication date (YYYY-MM-DD) |
severity |
string | yes | Severity label (CRITICAL, HIGH, MEDIUM, LOW) |
cve_ |
string | yes | Pipe-delimited CVE IDs mentioned in the advisory |
affected_ |
string | yes | Short description of affected products or systems |
vuln_cross_refs_unique · view¶
Deduplicated CVE↔external-advisory cross-references — the serving layer for vuln_cross_refs. The base vuln_cross_refs table is an APPEND log: the incremental GHSA delta crawl appends only advisories changed since the last watermark each run, so an advisory updated across several runs (and the inclusive updatedSince boundary advisory) contributes the same (cve_id, external_id) mapping more than once. GHSA→CVE mappings are immutable, so those repeats are exact duplicates; this view collapses them to one row per (cve_id, external_id, external_source). Query this view, not the base table, for unique cross-references.
View — columns are resolved by the query engine at runtime.
kev_enriched · view¶
KEV entries enriched with the matching NVD record via LEFT JOIN — one row per KEV entry, adding published/last_modified dates, vuln_status, full description_en, and CVSS v2/v3.1/v4.0 scores. Orphaned KEV entries (no matching NVD record) still appear with NULL NVD columns. For CWE taxonomy names instead of full NVD fields, see kev_cross_threat.
View — columns are resolved by the query engine at runtime.
vuln_cwe_enriched · view¶
Vulnerability-CWE junction enriched with CWE catalog details via LEFT JOIN. Unresolved CWE IDs still appear with NULL catalog columns.
View — columns are resolved by the query engine at runtime.
kev_cwe_enriched · view¶
KEV CWE references enriched with CWE catalog details via LEFT JOIN. Unresolved CWE IDs still appear with NULL catalog columns.
View — columns are resolved by the query engine at runtime.
vuln_threat_chain · view¶
Cross-domain vulnerability chain: CVE → KEV status → CWE → OWASP Top 10 category. Bridges cyber_vuln and cyber_threat schemas. Filter on cve_id or owasp_rank to navigate the chain. CVE→ATT&CK linkage requires the entity resolution layer (no structural mapping exists in the current data).
View — columns are resolved by the query engine at runtime.
kev_cross_threat · view¶
CISA KEV catalog enriched with NVD CVSS v2/v3.1 scores and CWE taxonomy names via LEFT JOIN through vulnerability_cwes and cwe_catalog (not full NVD description/status fields — see kev_enriched for those). One row per CVE in KEV; multiple CWE assignments per CVE are aggregated into a comma-delimited cwe_ids list and a semicolon-delimited cwe_names list.
View — columns are resolved by the query engine at runtime.