1 CVEs in npm, pip, and Maven Packages
Modern applications depend on hundreds or thousands of third-party packages. Each dependency — and its transitive dependencies — is a potential attack vector if a security vulnerability (CVE) is discovered.
The scale of the problem:
- A typical Node.js app has 500-1000+ transitive dependencies
- The average time between CVE disclosure and patching in production: 60+ days
- Log4Shell (2021): CVE in a Java logging library affected millions of systems
Direct vs transitive dependencies:
{
"dependencies": {
"express": "^4.18.0", // Direct — you chose this
"lodash": "^4.17.21" // Direct — but has had prototype pollution CVEs
}
}
// express depends on:
// path-to-regexp (has had ReDoS vulnerabilities)
// qs (has had prototype pollution CVEs)
// These are TRANSITIVE — you may not know they exist!Attackers scan for vulnerable dependencies using the npm audit API or public CVE databases to find targets running known-vulnerable package versions.