Software Supply Chain Failures occur when attackers compromise the dependencies, build tools, or update mechanisms your application relies on. Try the interactive playground below to see how a malicious package can exfiltrate secrets during install — and how pinning and script-blocking stop it.
OWASP Top 10 · 2025 · A03 — Software Supply Chain Failures
Modern applications are built on hundreds of third-party packages, build tools, and CI/CD pipelines — and every one of them is a trust decision. Software supply chain failures happen when unpinned or unverified dependencies, typosquatted package names, compromised maintainer accounts, or malicious build scripts (like postinstall hooks) get pulled into your codebase and executed with full developer privileges. Run the simulation below to see how a single npm install can turn into a credential-stealing attack — and how lockfiles, pinning, and script restrictions stop it cold.
Interactive Simulation — Install a Package
Vulnerable vs. Secure Dependency Flow
{ "name": "checkout-service", "dependencies": { "left-pad-utils": "^2.0.0" // loose range, auto-upgrades } } # no package-lock.json committed $ npm install # resolves "latest matching", no hash check # postinstall scripts run automatically, unrestricted
{ "name": "checkout-service", "dependencies": { "left-pad-utils": "2.3.7" // exact pinned version } } # package-lock.json committed to repo $ npm ci --ignore-scripts # lockfile-exact + hash-verified install # SBOM generated, provenance/signature checked (Sigstore/SLSA)
How to Detect & Fix