def printCVE(item): if not namelookup and not rankinglookup: print(json.dumps(item, sort_keys=True, default=json_util.default)) else: if "vulnerable_configuration" in item: vulconf = [] ranking = [] for conf in item['vulnerable_configuration']: if namelookup: vulconf.append(cves.getcpe(cpeid=conf)) if rankinglookup: rank = cves.getranking(cpeid=conf) if rank and rank not in ranking: ranking.append(rank) if namelookup: item['vulnerable_configuration'] = vulconf if rankinglookup: item['ranking'] = ranking print(json.dumps(item, sort_keys=True, default=json_util.default))
if sLatest:sorttype=-1 if cveSearch: for cveid in cveSearch: for item in collection.find({'id': cveid}).sort("Modified",sorttype): if not namelookup and not rankinglookup: print(json.dumps(item, sort_keys=True, default=json_util.default)) else: if "vulnerable_configuration" in item: vulconf = [] ranking = [] for conf in item['vulnerable_configuration']: if namelookup: vulconf.append(cves.getcpe(cpeid=conf)) if rankinglookup: rank = cves.getranking(cpeid=conf) if rank and rank not in ranking: ranking.append(rank) if namelookup: item['vulnerable_configuration'] = vulconf if rankinglookup: item['ranking'] = ranking print(json.dumps(item, sort_keys=True, default=json_util.default)) # Basic freetext search (in vulnerability summary). # Full-text indexing is more efficient to search across all CVEs. if vFreeSearch: for item in collection.find({'summary': {'$regex' : re.compile(vFreeSearch, re.IGNORECASE)}}).sort("Modified",sorttype): print(item) # Search Product (best to use CPE notation, e.g. cisco:ios:12.2 if vSearch:
if cveSearch: for cveid in cveSearch: for item in collection.find({'id': cveid}).sort("Modified", sorttype): if not namelookup and not rankinglookup: print( json.dumps(item, sort_keys=True, default=json_util.default)) else: if "vulnerable_configuration" in item: vulconf = [] ranking = [] for conf in item['vulnerable_configuration']: if namelookup: vulconf.append(cves.getcpe(cpeid=conf)) if rankinglookup: rank = cves.getranking(cpeid=conf) if rank and rank not in ranking: ranking.append(rank) if namelookup: item['vulnerable_configuration'] = vulconf if rankinglookup: item['ranking'] = ranking print( json.dumps(item, sort_keys=True, default=json_util.default)) # Basic freetext search (in vulnerability summary). # Full-text indexing is more efficient to search across all CVEs. if vFreeSearch: for item in collection.find({ 'summary': {