Back to Cheat Sheets

📦 Vulnerable & Outdated Components

OWASP Web Top 10 - #6

HIGH RISK

📋 What Is It?

Vulnerable and Outdated Components occur when applications use libraries, frameworks, or other software modules with known security vulnerabilities. This includes outdated versions, end-of-life software, and unpatched dependencies.

#6 OWASP Rank
27K CVEs/Year
8.77% Avg Coverage

⚠️ Common Exploits

  • Known CVEs: Exploiting publicly documented vulnerabilities
  • Outdated Frameworks: Using old versions with security flaws
  • End-of-Life Software: No security updates available
  • Supply Chain Attacks: Compromised dependencies
  • Unpatched Libraries: Missing critical security patches
  • Abandoned Projects: No longer maintained software

🔴 Attack Flow

1. App uses Flask 0.12.2 (from 2017)

2. Attacker finds CVE-2018-1000656

3. Exploits known RCE vulnerability

4. Public exploit code available

5. BREACH: Remote code execution!

❌ Vulnerable Code

# requirements.txt - VULNERABLE Flask==0.12.2 # CVE-2018-1000656 (RCE) requests==2.6.0 # CVE-2018-18074 (Header Injection) Django==1.11.0 # Multiple known CVEs Pillow==5.0.0 # Image processing vulnerabilities PyYAML==3.12 # Unsafe YAML loading # package.json - VULNERABLE { "dependencies": { "express": "3.0.0", // Ancient version "lodash": "4.17.4", // Prototype pollution "jquery": "1.12.0" // XSS vulnerabilities } }

✅ Secure Code

# requirements.txt - SECURE (latest versions) Flask==3.0.0 # Current stable, all CVEs patched requests==2.31.0 # Latest security fixes Django==5.0.0 # Current LTS version Pillow==10.1.0 # All security patches PyYAML==6.0.1 # Safe YAML loading # package.json - SECURE { "dependencies": { "express": "^4.18.2", // Latest major "lodash": "^4.17.21", // Patched "jquery": "^3.7.1" // Current version } } # Use automated tools pip-audit # Check for vulnerabilities npm audit # Check Node.js packages

✓ Prevention Checklist

  • Keep all dependencies up to date
  • Remove unused dependencies
  • Use dependency scanning tools (pip-audit, npm audit)
  • Monitor CVE databases regularly
  • Subscribe to security advisories
  • Use Software Composition Analysis (SCA) tools
  • Automate dependency updates (Dependabot)
  • Test updates before deploying
  • Maintain software inventory
  • Avoid end-of-life software

🔍 Detection & Tools

Scanning Tools:

pip-audit npm audit Snyk OWASP Dependency-Check

Automation Tools:

Dependabot Renovate WhiteSource Black Duck

How to Test:

  • Run pip-audit or npm audit regularly
  • Check NVD database for CVEs
  • Review dependency versions vs latest
  • Use SCA tools in CI/CD pipeline

🌍 Real-World Breaches

  • Equifax (2017): Unpatched Apache Struts led to 147M records exposed
  • Heartbleed (2014): OpenSSL vulnerability affected millions of servers
  • Log4Shell (2021): Log4j vulnerability in countless Java applications
  • SolarWinds (2020): Supply chain attack via compromised updates

📌 Quick Tips

  • DO NOT use end-of-life software
  • DO NOT ignore security updates
  • DO automate dependency scanning
  • DO monitor CVE databases
  • DO maintain software inventory

📜 Compliance

Related Standards:

  • PCI-DSS Requirement 6.2
  • NIST 800-53 SI-2
  • ISO 27001 A.12.6.1
  • CWE CWE-1035, CWE-1104