Home / Knowledge hub / Dependency vulnerability
Knowledge hub
Dependency vulnerability
A known flaw in a library your application ships.
What it means
A dependency vulnerability is a known flaw in a library your application includes, reported against the version you actually ship. You did not write that code. You ship it, so it is yours.
Modern applications are mostly other people's code. A handful of direct libraries pull in hundreds of indirect ones, and nearly every issue you hear about will come from that second group.
Why it matters
These flaws are public by the time you hear about them, which cuts both ways. The fix is usually a version bump rather than a redesign. The exploit is usually public too, and anyone can check which version you run.
There is an expectation to meet as well. Customers increasingly ask what you ship, as a list, and a team that cannot produce one looks less prepared than it is. Keeping dependencies current is dull, continuous work. It never feels urgent until a widely used library is in the news, and every customer asks the same question on the same morning.
How it shows up
Finding them is easy. Judging them is the work. A long list arrives, most of it does not apply, and the team learns to scroll past the list entirely.
Three questions sort it: do you call the affected part at all, can a stranger reach that path, and does user input ever get there. MITRE also tracks a separate problem worth checking, which is depending on components nobody maintains any more. We report these against the version in your repository, with the path that reaches them. What a finding contains.
Questions people ask
Dependency vulnerability, answered
Our audit tool reports fifty vulnerabilities. Do we have to fix them all?
No, and trying is how teams learn to ignore the tool. Most reported issues sit in code paths your application never executes.
Sort by reachability first, then by what the flaw does. A handful usually matter and the rest can go in a scheduled upgrade.
What about vulnerabilities in dev dependencies?
They do not ship, so they cannot be attacked in production. They can still be attacked on a developer's machine or in your build, which is a real if different risk.
Treat build tooling as part of your supply chain and keep it current, but stop counting those findings alongside production ones.
The flaw is in a transitive dependency we cannot upgrade. Now what?
Three options, in order. Upgrade the direct dependency that pulls it in. Pin or override the nested version if your package manager supports it. Or record that you accept it, with a date to revisit.
The third is a legitimate answer when the path is unreachable. Write down why, so the next person does not repeat the investigation.
Does a CVE in a library mean our application is exploitable?
No. It means that version contains a flaw. Whether it is exploitable depends on whether you call the affected function and whether anything untrusted reaches it.
That is why reachability matters more than severity for this class of finding.
How often should we update dependencies?
Little and often beats a yearly marathon. Weekly automated upgrade pull requests keep each change small enough to review and to revert.
Teams that batch a year of updates end up with a change nobody wants to merge, which is how a library reaches four major versions behind.
Sources
Where this comes from
Related
Terms that sit next to this one
SCA
Checking your libraries against databases of published vulnerabilities.
SBOM
A list of every component your application includes, with versions.
Known-vulnerable component
A library or runtime with a published flaw that you are still shipping.
Supply chain attack
Reaching you through a library, a build tool or a vendor you trust.
Patching
Applying the fixes that vendors and maintainers publish.
Shipping somebody else's known bug?
We report known flaws against the version in your repository, with the path that reaches the code, so the list stays short enough to act on. Ask about 30 days on one application for $199.
Or start with a $199 pilot on one application: thirty days, success criteria agreed before day one, credited against the annual if you convert.