Teams end up triaging large volumes of findings that may never be exploitable in their environment, while missing the few issues that can be invoked from live code paths. CVE counts alone do not tell you whether a package is reachable, trusted, or present in a critical build path. Reachability and provenance are what convert scanning into decision support.
Why This Matters for Security Teams
CVE-based dependency scanning often looks comprehensive while still leaving real exposure unidentified. A package can carry many disclosed flaws and still be irrelevant if it is never loaded, never invoked, or only present in a dev-only path. The reverse is also true: a single low-profile component may sit on a hot path and create meaningful risk. Current guidance from CISA’s Known Exploited Vulnerabilities Catalog and similar prioritisation models points security teams toward exploitability, not raw volume.
This matters because dependency scanning is supposed to support remediation decisions, not merely generate inventory noise. When teams optimise around CVE counts, they can spend cycles suppressing backlog items that are unlikely to matter while leaving internet-facing services, build pipelines, or runtime libraries underprotected. That weakens patch prioritisation, distorts risk reporting, and creates a false sense of control. In practice, many security teams encounter the failure only after a vulnerable component has already shipped into a critical path rather than through intentional risk-based review.
How It Works in Practice
A more useful dependency-scanning workflow combines vulnerability data with context about where the dependency appears, how it is used, and whether it can actually be reached. The question is not just “does this package have a CVE?” but “can this vulnerable function be executed in this application, in this environment, under this configuration?” That shift turns scanning from a count of disclosures into a control for prioritising action.
Security and platform teams usually need at least three layers of evidence:
-
Reachability: whether the affected code path is imported, called, or exposed through runtime behaviour.
-
Provenance: where the dependency came from, whether it is trusted, and whether it was pinned, mirrored, or substituted.
-
Build and deployment context: whether the package is in production, test-only, transitive-only, or excluded by feature flags.
That is why modern software supply chain practice often pairs software composition analysis with SBOMs, artifact signing, and policy enforcement. Guidance from NIST SSDF and OWASP’s Software Component Verification Standard supports this broader view: verify components, control provenance, and reduce reliance on blind severity scoring alone. For teams using CI/CD, the practical move is to enrich alerts with runtime context, ownership, exploit intelligence, and release impact before escalation.
This same logic becomes even more important when dependencies are introduced through AI-assisted code generation or autonomous build tooling, because provenance gaps can appear faster than human review can keep up. A CVE total can still be useful for reporting trends, but it should not be the decision trigger for prioritisation. These controls tend to break down in large monorepos with heavy transitive dependency churn because ownership, reachability, and deployment context are too fragmented for simple counts to stay meaningful.
Common Variations and Edge Cases
Tighter dependency governance often increases build friction, requiring organisations to balance faster delivery against stronger assurance. That tradeoff is real, especially when teams rely on generated code, rapid package updates, or multiple language ecosystems with uneven metadata quality.
Best practice is evolving around a few edge cases. First, not every “reachable” dependency is equally exploitable; some flaws depend on specific functions, inputs, or runtime options, so current guidance suggests separating theoretical reachability from demonstrated exploitability. Second, some ecosystems have weak or inconsistent package metadata, which makes provenance and transitive analysis harder than CVE lookup alone. Third, a package can be low risk in one service and high risk in another if trust boundaries, network exposure, or secrets handling differ.
For AI-enabled development pipelines, the same principle applies to model and agent dependencies: source trust, prompt/tool boundaries, and update paths matter as much as the headline issue count. The Anthropic report on the first AI-orchestrated cyber espionage campaign is a reminder that automation changes the speed and scale of abuse, which makes context-rich prioritisation more important, not less. In short, CVE-only scoring is weakest when the environment mixes transitive dependencies, ephemeral builds, and multiple deployment tiers with different exposure profiles.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
MITRE ATLAS, OWASP Agentic AI Top 10 and OWASP Non-Human Identity Top 10 address the attack and risk surface, while NIST CSF 2.0 and NIST AI RMF set the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| NIST CSF 2.0 | GV.RM-01 | Risk prioritisation should reflect exploitability and business context, not raw CVE volume. |
| NIST AI RMF | AI-assisted pipelines raise provenance and governance issues for dependency decisions. | |
| MITRE ATLAS | AML.T0010 | Supply chain and model-adjacent attacks can exploit weak provenance and trust controls. |
| OWASP Agentic AI Top 10 | A04 | Agentic tooling can introduce unvetted dependencies and unsafe execution paths. |
| OWASP Non-Human Identity Top 10 | NHI-02 | Dependency trust and secret handling intersect with non-human identity governance. |
Establish governance for automated code and dependency intake before trusting generated outputs.