feat(models/nvd): group by source (#1805)
This commit is contained in:
		@@ -93,46 +93,50 @@ func ConvertNvdToModel(cveID string, nvds []cvedict.Nvd) ([]CveContent, []Exploi
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		cweIDs := []string{}
 | 
			
		||||
		for _, cid := range nvd.Cwes {
 | 
			
		||||
			cweIDs = append(cweIDs, cid.CweID)
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		desc := []string{}
 | 
			
		||||
		for _, d := range nvd.Descriptions {
 | 
			
		||||
			desc = append(desc, d.Value)
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		m := map[string]CveContent{}
 | 
			
		||||
		for _, cwe := range nvd.Cwes {
 | 
			
		||||
			c := m[cwe.Source]
 | 
			
		||||
			c.CweIDs = append(c.CweIDs, cwe.CweID)
 | 
			
		||||
			m[cwe.Source] = c
 | 
			
		||||
		}
 | 
			
		||||
		for _, cvss2 := range nvd.Cvss2 {
 | 
			
		||||
			cves = append(cves, CveContent{
 | 
			
		||||
				Type:          Nvd,
 | 
			
		||||
				CveID:         cveID,
 | 
			
		||||
				Summary:       strings.Join(desc, "\n"),
 | 
			
		||||
				Cvss2Score:    cvss2.BaseScore,
 | 
			
		||||
				Cvss2Vector:   cvss2.VectorString,
 | 
			
		||||
				Cvss2Severity: cvss2.Severity,
 | 
			
		||||
				SourceLink:    fmt.Sprintf("https://nvd.nist.gov/vuln/detail/%s", cveID),
 | 
			
		||||
				// Cpes:          cpes,
 | 
			
		||||
				CweIDs:       cweIDs,
 | 
			
		||||
				References:   refs,
 | 
			
		||||
				Published:    nvd.PublishedDate,
 | 
			
		||||
				LastModified: nvd.LastModifiedDate,
 | 
			
		||||
			})
 | 
			
		||||
			c := m[cvss2.Source]
 | 
			
		||||
			c.Cvss2Score = cvss2.BaseScore
 | 
			
		||||
			c.Cvss2Vector = cvss2.VectorString
 | 
			
		||||
			c.Cvss2Severity = cvss2.Severity
 | 
			
		||||
			m[cvss2.Source] = c
 | 
			
		||||
		}
 | 
			
		||||
		for _, cvss3 := range nvd.Cvss3 {
 | 
			
		||||
			c := m[cvss3.Source]
 | 
			
		||||
			c.Cvss3Score = cvss3.BaseScore
 | 
			
		||||
			c.Cvss3Vector = cvss3.VectorString
 | 
			
		||||
			c.Cvss3Severity = cvss3.BaseSeverity
 | 
			
		||||
			m[cvss3.Source] = c
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		for source, cont := range m {
 | 
			
		||||
			cves = append(cves, CveContent{
 | 
			
		||||
				Type:          Nvd,
 | 
			
		||||
				CveID:         cveID,
 | 
			
		||||
				Summary:       strings.Join(desc, "\n"),
 | 
			
		||||
				Cvss3Score:    cvss3.BaseScore,
 | 
			
		||||
				Cvss3Vector:   cvss3.VectorString,
 | 
			
		||||
				Cvss3Severity: cvss3.BaseSeverity,
 | 
			
		||||
				Cvss2Score:    cont.Cvss2Score,
 | 
			
		||||
				Cvss2Vector:   cont.Cvss2Vector,
 | 
			
		||||
				Cvss2Severity: cont.Cvss2Severity,
 | 
			
		||||
				Cvss3Score:    cont.Cvss3Score,
 | 
			
		||||
				Cvss3Vector:   cont.Cvss3Vector,
 | 
			
		||||
				Cvss3Severity: cont.Cvss3Severity,
 | 
			
		||||
				SourceLink:    fmt.Sprintf("https://nvd.nist.gov/vuln/detail/%s", cveID),
 | 
			
		||||
				// Cpes:          cpes,
 | 
			
		||||
				CweIDs:       cweIDs,
 | 
			
		||||
				CweIDs:       cont.CweIDs,
 | 
			
		||||
				References:   refs,
 | 
			
		||||
				Published:    nvd.PublishedDate,
 | 
			
		||||
				LastModified: nvd.LastModifiedDate,
 | 
			
		||||
				Optional:     map[string]string{"source": source},
 | 
			
		||||
			})
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user