Skip to content

Commit fb57762

Browse files
authored
Merge pull request #1752 from l3montree-dev/1732-vulnerable-components-badge-is-not-deduplicated-currently-shows-all-paths-to-vuln
2 parents 4fefe7e + 43c730f commit fb57762

1 file changed

Lines changed: 10 additions & 0 deletions

File tree

services/statistics_service.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,19 @@ func (s *statisticsService) GetComponentRisk(artifactName *string, assetVersionN
3535

3636
distributionPerComponent := make(map[string]models.Distribution)
3737

38+
uniqueCombinations := make(map[string]struct{})
3839
for _, dependencyVuln := range dependencyVulns {
3940
componentName := dependencyVuln.ComponentPurl
4041
if _, exists := distributionPerComponent[componentName]; !exists {
4142
distributionPerComponent[componentName] = models.Distribution{}
4243
}
44+
45+
combinationKey := fmt.Sprintf("%s|%s", dependencyVuln.CVEID, dependencyVuln.ComponentPurl)
46+
47+
if _, exists := uniqueCombinations[combinationKey]; exists {
48+
continue // already counted this CVE+PURL combination
49+
}
50+
4351
distribution := distributionPerComponent[componentName]
4452

4553
risk := utils.OrDefault(dependencyVuln.RawRiskAssessment, 0)
@@ -68,6 +76,8 @@ func (s *statisticsService) GetComponentRisk(artifactName *string, assetVersionN
6876
}
6977

7078
distributionPerComponent[componentName] = distribution
79+
80+
uniqueCombinations[combinationKey] = struct{}{}
7181
}
7282

7383
return distributionPerComponent, nil

0 commit comments

Comments
 (0)