DependencyTrack / DependencyTrack/dependency-track

Internal analyzer findings persist after all affected components are removed from an internal vulnerability

Open
#7,029 0 comments 0 reactions 0 assignees View on GitHub
defect in triage
Dominant language
Java
Stars
4.2k
Forks
811
Avg merge
8h 39m
Merged PRs (30d)
237

Description

### Current Behavior

When an INTERNAL vulnerability is updated and all of its affected components are removed, the VulnerableSoftware records are synchronized correctly, but findings previously created by the internal analyzer remain attached to the matched components. Since the internal analyzer only ever adds findings, these stale findings persist indefinitely — components keep showing a vulnerability that, per its own definition, no longer affects anything.

### Steps to Reproduce

1. Create a project with a component, e.g. purl pkg:maven/com.acme/acme-lib@1.0.0
2. Create an INTERNAL vulnerability with an affected component matching that purl
3. Let the internal analyzer run (BOM upload or portfolio analysis) — a finding is created for the component
4. Edit the vulnerability and remove all affected components
5. The component still shows the finding

### Expected Behavior

When the affected-components list of an INTERNAL vulnerability is emptied, findings attributed to INTERNAL_ANALYZER for that vulnerability are removed and component metrics are refreshed.

### Dependency-Track Version

4.x

### Browser

Google Chrome

### Checklist

- [x] I have read and understand the [contributing guidelines](https://github.com/DependencyTrack/dependency-track/blob/main/CONTRIBUTING.md#filing-issues)
- [x] I have checked the [existing issues](https://github.com/DependencyTrack/dependency-track/issues) for whether this defect was already reported

Contributor guide

Open the contributing guide

Research direction

No source file or test is named in the issue. Start by tracing the INTERNAL vulnerability update path and the INTERNAL_ANALYZER finding cleanup and metric refresh behavior; reproduce the five steps, then add coverage for removing all affected components and verify that stale findings disappear and metrics refresh.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
58/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.