@@ -93,46 +93,50 @@ func ConvertNvdToModel(cveID string, nvds []cvedict.Nvd) ([]CveContent, []Exploi
93
93
}
94
94
}
95
95
96
- cweIDs := []string {}
97
- for _ , cid := range nvd .Cwes {
98
- cweIDs = append (cweIDs , cid .CweID )
99
- }
100
-
101
96
desc := []string {}
102
97
for _ , d := range nvd .Descriptions {
103
98
desc = append (desc , d .Value )
104
99
}
105
100
101
+ m := map [string ]CveContent {}
102
+ for _ , cwe := range nvd .Cwes {
103
+ c := m [cwe .Source ]
104
+ c .CweIDs = append (c .CweIDs , cwe .CweID )
105
+ m [cwe .Source ] = c
106
+ }
106
107
for _ , cvss2 := range nvd .Cvss2 {
107
- cves = append (cves , CveContent {
108
- Type : Nvd ,
109
- CveID : cveID ,
110
- Summary : strings .Join (desc , "\n " ),
111
- Cvss2Score : cvss2 .BaseScore ,
112
- Cvss2Vector : cvss2 .VectorString ,
113
- Cvss2Severity : cvss2 .Severity ,
114
- SourceLink : fmt .Sprintf ("https://nvd.nist.gov/vuln/detail/%s" , cveID ),
115
- // Cpes: cpes,
116
- CweIDs : cweIDs ,
117
- References : refs ,
118
- Published : nvd .PublishedDate ,
119
- LastModified : nvd .LastModifiedDate ,
120
- })
108
+ c := m [cvss2 .Source ]
109
+ c .Cvss2Score = cvss2 .BaseScore
110
+ c .Cvss2Vector = cvss2 .VectorString
111
+ c .Cvss2Severity = cvss2 .Severity
112
+ m [cvss2 .Source ] = c
121
113
}
122
114
for _ , cvss3 := range nvd .Cvss3 {
115
+ c := m [cvss3 .Source ]
116
+ c .Cvss3Score = cvss3 .BaseScore
117
+ c .Cvss3Vector = cvss3 .VectorString
118
+ c .Cvss3Severity = cvss3 .BaseSeverity
119
+ m [cvss3 .Source ] = c
120
+ }
121
+
122
+ for source , cont := range m {
123
123
cves = append (cves , CveContent {
124
124
Type : Nvd ,
125
125
CveID : cveID ,
126
126
Summary : strings .Join (desc , "\n " ),
127
- Cvss3Score : cvss3 .BaseScore ,
128
- Cvss3Vector : cvss3 .VectorString ,
129
- Cvss3Severity : cvss3 .BaseSeverity ,
127
+ Cvss2Score : cont .Cvss2Score ,
128
+ Cvss2Vector : cont .Cvss2Vector ,
129
+ Cvss2Severity : cont .Cvss2Severity ,
130
+ Cvss3Score : cont .Cvss3Score ,
131
+ Cvss3Vector : cont .Cvss3Vector ,
132
+ Cvss3Severity : cont .Cvss3Severity ,
130
133
SourceLink : fmt .Sprintf ("https://nvd.nist.gov/vuln/detail/%s" , cveID ),
131
134
// Cpes: cpes,
132
- CweIDs : cweIDs ,
135
+ CweIDs : cont . CweIDs ,
133
136
References : refs ,
134
137
Published : nvd .PublishedDate ,
135
138
LastModified : nvd .LastModifiedDate ,
139
+ Optional : map [string ]string {"source" : source },
136
140
})
137
141
}
138
142
}
0 commit comments