From 4df528c3318dcd9813c26e1025cf522c47d8adac Mon Sep 17 00:00:00 2001 From: chrisr3d Date: Fri, 2 Aug 2019 15:35:33 +0200 Subject: [PATCH] add: Added initial event to reference it from the vulnerability object created out of it --- misp_modules/modules/expansion/cve_advanced.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/misp_modules/modules/expansion/cve_advanced.py b/misp_modules/modules/expansion/cve_advanced.py index 79a67ec..3c7f611 100644 --- a/misp_modules/modules/expansion/cve_advanced.py +++ b/misp_modules/modules/expansion/cve_advanced.py @@ -13,9 +13,11 @@ cveapi_url = 'https://cve.circl.lu/api/cve/' class VulnerabilityParser(): - def __init__(self, vulnerability): + def __init__(self, attribute, vulnerability): + self.attribute = attribute self.vulnerability = vulnerability self.misp_event = MISPEvent() + self.misp_event.add_attribute(**attribute) self.references = defaultdict(list) self.capec_features = ('id', 'name', 'summary', 'prerequisites', 'solutions') self.vulnerability_mapping = { @@ -48,6 +50,7 @@ class VulnerabilityParser(): attribute_type, relation = self.vulnerability_mapping[feature] for value in self.vulnerability[feature]: vulnerability_object.add_attribute(relation, **{'type': attribute_type, 'value': value}) + vulnerability_object.add_reference(self.attribute['uuid'], 'related-to') self.misp_event.add_object(**vulnerability_object) if 'cwe' in self.vulnerability: self.__parse_weakness(vulnerability_object.uuid) @@ -110,7 +113,7 @@ def handler(q=False): else: misperrors['error'] = 'cve.circl.lu API not accessible' return misperrors['error'] - parser = VulnerabilityParser(vulnerability) + parser = VulnerabilityParser(attribute, vulnerability) parser.parse_vulnerability_information() return parser.get_result()