15 lines
539 B
Python
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'))
|