Files
vuln-builder/importers/cve.py
T

15 lines
539 B
Python

"""CVEProject cvelistV5, metadata-only conservative extraction."""
from .common import CVE, upsert_vuln
def process(db, obj):
if not isinstance(obj, dict):
raise ValueError(f'Unexpected CVE JSON type: {type(obj).__name__}')
meta = obj.get('cveMetadata')
if not isinstance(meta, dict):
return False
vid = meta.get('cveId')
if not isinstance(vid, str) or not CVE.fullmatch(vid):
return False
return upsert_vuln(db, vid, meta.get('datePublished'), meta.get('dateUpdated'), meta.get('state'))