Join our Newsletter — 33% off our NHI Course

What is the difference between filtering vulnerable dependencies and actually fixing them?

Filtering identifies which issues are less likely to be exploitable, which helps triage. Fixing means proving that an upgrade is compatible, safe to deploy, and unlikely to break the application. The first reduces noise. The second reduces exposure. Mature programmes need both, but only the second removes the underlying security and maintenance burden.

Why This Matters for Security Teams

Filtering vulnerable dependencies is a triage activity. It helps teams decide which findings are likely to matter right now, especially when scanners produce noisy results across transitive packages, optional features, or code paths that are not reachable. Fixing is different: it means changing the software state so the vulnerable component is removed, upgraded, or otherwise remediated in a way that can actually be deployed.

That distinction matters because a filtered finding can still represent unresolved exposure if the dependency is present, reachable, or later activated by a feature flag. Security teams that stop at filtering often create the appearance of progress without reducing the underlying maintenance burden. Guidance from NIST SP 800-53 Rev 5 Security and Privacy Controls reinforces that remediation is about control effectiveness, not just report suppression. NHIMG’s Ultimate Guide to NHIs — What are Non-Human Identities also shows why unresolved exposure compounds quickly in identity-driven systems where secrets, service accounts, and automation are hard to inventory. In practice, many security teams encounter “resolved” dependency risk only after the next release reintroduces the same vulnerable package through another path.

How It Works in Practice

Filtering usually happens at scan time or policy time. A tool may mark a vulnerability as non-actionable because the package is not on an execution path, because a version range is behind a safe wrapper, or because the issue is already mitigated by configuration. That is useful for prioritisation, but it is not proof of remediation. Fixing requires a different workflow: select a safe upgrade, validate compatibility, run tests, confirm the build still works, and deploy the change.

In mature pipelines, the two steps sit side by side:

  • Filtering reduces alert fatigue by separating likely false positives from likely exploitable issues.
  • Fixing removes the vulnerable artifact from the dependency graph or replaces it with a patched version.
  • Verification checks whether the dependency is still present in lockfiles, containers, or generated bundles after release.
  • Policy gates can require evidence that the upgrade passed tests before merge or deployment.

For control design, NIST SP 800-53 Rev 5 Security and Privacy Controls is useful for mapping remediation and change management to operational controls, while NHIMG’s Ultimate Guide to NHIs — What are Non-Human Identities is a strong reminder that identity-adjacent software risk often persists through stale secrets and hard-to-track automation. A practical programme treats filtering as decision support and fixing as the actual risk reduction step. These controls tend to break down when build pipelines are fragmented across teams because the scan result is filtered in one system while the vulnerable dependency remains deployed elsewhere.

Common Variations and Edge Cases

Tighter remediation rules often increase delivery overhead, requiring organisations to balance release speed against confidence that the fix will not break production. That tradeoff is especially visible in legacy applications, monorepos, and vendor-managed components where even a minor upgrade can trigger regressions.

Best practice is evolving, but current guidance suggests a few important edge cases. A dependency may be safely filtered if it is provably unreachable, but that decision should be documented and periodically revalidated because code paths change. A dependency may also be “fixed” only in the narrow sense of version bumping while the vulnerable package still exists in another layer, such as a container image, embedded library, or downstream package cache. In those cases, the exposure is not truly gone.

Teams should also distinguish between temporary suppression and durable remediation. Suppression is acceptable when there is an explicit compensating control and a review date. Fixing is the better outcome when a patch is available and the application can absorb it. If neither is true, the issue remains a maintenance liability, not a resolved finding. That distinction becomes critical in CI/CD-heavy environments with frequent dependency regeneration and multiple deployment targets.

Standards & Framework Alignment

This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.

OWASP Non-Human Identity Top 10 address the attack and risk surface, while NIST CSF 2.0, NIST SP 800-63, NIST Zero Trust (SP 800-207) and NIST AI RMF set the governance and control requirements practitioners need to meet.

Framework Control / Reference Relevance
OWASP Non-Human Identity Top 10 NHI-04 Filtering and fixing both affect how identity-linked dependencies are tracked and remediated.
NIST CSF 2.0 PR.IP-12 Remediation and change management govern whether a dependency issue is truly fixed.
NIST SP 800-63 Identity assurance depends on reducing exposure from leaked or stale credentials in software.
NIST Zero Trust (SP 800-207) SC-7 Zero Trust assumes exposure persists until vulnerable components are actually removed.
NIST AI RMF Risk management should distinguish triage signals from actual reduction in system exposure.

Treat dependency remediation as part of maintaining trustworthy identity and credential hygiene.