From d1a617cfff042f4b9cd20334f3c693deae3d956b Mon Sep 17 00:00:00 2001 From: MaineK00n Date: Thu, 14 Jul 2022 09:26:30 +0900 Subject: [PATCH] fix(ms): remove duplicate advisories (#1490) --- gost/microsoft.go | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/gost/microsoft.go b/gost/microsoft.go index ba0b8a8a..831040b8 100644 --- a/gost/microsoft.go +++ b/gost/microsoft.go @@ -130,19 +130,23 @@ func (ms Microsoft) DetectCVEs(r *models.ScanResult, _ bool) (nCVEs int, err err for cveID, cve := range cves { cveCont, mitigations := ms.ConvertToModel(&cve) - advisories := []models.DistroAdvisory{} + uniqKB := map[string]struct{}{} for _, p := range cve.Products { for _, kb := range p.KBs { - adv := models.DistroAdvisory{ - AdvisoryID: kb.Article, - Description: "Microsoft Knowledge Base", - } if _, err := strconv.Atoi(kb.Article); err == nil { - adv.AdvisoryID = fmt.Sprintf("KB%s", kb.Article) + uniqKB[fmt.Sprintf("KB%s", kb.Article)] = struct{}{} + } else { + uniqKB[kb.Article] = struct{}{} } - advisories = append(advisories, adv) } } + advisories := []models.DistroAdvisory{} + for kb := range uniqKB { + advisories = append(advisories, models.DistroAdvisory{ + AdvisoryID: kb, + Description: "Microsoft Knowledge Base", + }) + } r.ScannedCves[cveID] = models.VulnInfo{ CveID: cveID,