Objective
Verify that the software components, dependencies, development tooling, build systems and distribution mechanisms used by the application are known, appropriately trusted, maintained, monitored and managed throughout their lifecycle.
Modern applications rarely consist entirely of internally developed code. They depend on operating systems, runtimes, frameworks, libraries, packages, containers, build tools, CI/CD systems, third-party services and other software components.
A supply chain failure can therefore occur even when the application's own source code is secure. A vulnerable dependency, compromised package, malicious build change, stolen CI/CD credential or untrusted artifact can introduce risk before software reaches production.
OWASP Top 10:2025 expands the previous vulnerable and outdated component concept into a broader Software Supply Chain Failures category covering dependencies, build systems, repositories, CI/CD, developer tooling, artifacts and distribution infrastructure. :contentReference[oaicite:1]{index=1}
Scope
Review the complete software supply chain where applicable:
Prerequisites
| Authorization | Confirm authorization to review the application's source, dependencies, build configuration and associated infrastructure. |
|---|---|
| Source access | Obtain access to dependency manifests, lock files or equivalent component declarations where available. |
| Build information | Obtain sufficient information about the CI/CD pipeline and artifact generation process. |
| SBOM | Obtain an existing Software Bill of Materials when available. |
| Vulnerability sources | Use authoritative vulnerability and advisory sources appropriate to the technology stack. |
Methodology
The assessment should establish what software enters the application, where it comes from, which versions are actually used, whether those components remain supported and whether changes to the supply chain are controlled.
| Review area | Primary question |
|---|---|
| Inventory | Do we know which components and versions are actually used? |
| Dependency graph | Are transitive dependencies included? |
| Vulnerability status | Are known security issues identified and triaged? |
| Maintenance | Are components supported and capable of receiving security updates? |
| Source trust | Are packages obtained from trusted, controlled sources? |
| Build integrity | Can unauthorized changes enter the build? |
| Change management | Are dependency and pipeline changes reviewed and traceable? |
Test procedure
Software component inventory
The first requirement of effective supply-chain security is knowing what software is actually present. An inventory should include direct and transitive dependencies and, where practical, their versions, sources and identifiers.
| Component | Example information |
|---|---|
| Package | Name, ecosystem, exact version and source |
| Dependency relationship | Direct or transitive dependency |
| License | Applicable package license |
| Vulnerability status | Applicable CVE or ecosystem advisory |
| Maintenance status | Supported, deprecated, abandoned or otherwise unmaintained |
| Integrity information | Lock-file integrity, checksum, signature or provenance information where available |
Example dependency declaration
{
"dependencies": {
"example-framework": "4.2.1",
"example-library": "2.8.0",
"example-client": "1.6.4"
}
}
The manifest may list only direct dependencies. The actual application can include many additional transitive packages. The assessment should therefore resolve the effective dependency graph and, where possible, compare it with the software actually deployed.
Supply chain risk assessment
A dependency is affected by a known security vulnerability that is relevant to the deployed application.
A component is significantly behind supported releases and may no longer receive required security fixes.
A dependency has no effective maintainer or security-update path.
Software is obtained from an uncontrolled, unexpected or insufficiently trusted source.
Weak CI/CD access controls allow unauthorized modification or promotion of software.
Released artifacts lack adequate integrity, provenance or controlled promotion mechanisms.
Dependency, build or repository changes cannot be reliably attributed, reviewed or traced.
Unnecessary components increase the application's dependency and attack surface.
Version age alone does not establish exploitability. The assessment should consider whether the component is affected by a known issue, whether the affected functionality is reachable, whether a supported update exists and what compensating controls are present.
Vulnerability verification
A vulnerability reported by a dependency scanner should not automatically be treated as a confirmed exploitable finding. Verification should establish that the affected component and relevant vulnerable functionality are actually present in the assessed software.
Failure criteria
The production application uses a third-party dependency version affected by a publicly documented security vulnerability. The deployed version falls within the affected range, the vulnerable functionality is used by the application, and no compensating control or approved remediation exception has been identified.
Remediation
Establish a continuous software supply chain management process rather than treating dependency updates as an occasional maintenance task.
Recommended controls
- Maintain a current inventory of direct and transitive dependencies.
- Generate and maintain a Software Bill of Materials for released software where appropriate.
- Monitor relevant vulnerability databases and vendor security advisories.
- Remove unused dependencies and unnecessary components.
- Prefer maintained components with a clear security update path.
- Obtain dependencies from trusted package sources.
- Use lock files or equivalent dependency resolution controls where appropriate.
- Protect source repositories and package publication credentials.
- Apply MFA and least privilege to critical supply-chain accounts and systems.
- Protect CI/CD workflow configuration against unauthorized modification.
- Separate code development, build approval and production promotion responsibilities where the risk warrants it.
- Protect artifacts through controlled repositories, provenance and integrity mechanisms.
- Test dependency updates before production deployment.
- Use staged or controlled deployment for high-risk updates where appropriate.
- Maintain a documented process for responding to newly discovered supply-chain vulnerabilities.
Example dependency update
Before
"example-library": "2.8.0"
After
"example-library": "2.8.7"
Required verification
1. Confirm advisory status.
2. Review release notes.
3. Update dependency lock data.
4. Run automated security checks.
5. Run application tests.
6. Build the release artifact.
7. Verify artifact provenance/integrity.
8. Deploy through the approved pipeline.
9. Re-scan the deployed software.
A secure update process must also verify compatibility, build integrity, deployment behavior and the resulting dependency graph. Otherwise an update can simply move the risk to another component or introduce a new operational failure.
Evidence requirements
Public evidence must not expose private repository URLs, credentials, package publishing tokens, internal CI/CD configuration, private infrastructure details or other sensitive organizational information.
Classification
| WebOTG procedure | WebOTG-SCF-001 |
|---|---|
| OWASP category | A03:2025 — Software Supply Chain Failures |
| Procedure type | Software dependency and supply-chain security review |
| Assessment result | PASS / FAIL / NOT TESTED |
| Finding severity | Determine according to exploitability, affected functionality, exposure, component criticality and available compensating controls. |
WebOTG-SCF-001 is a WebOTG-defined verification procedure. The identifier is not an OWASP-defined test identifier.
References
| Source | Relevance |
|---|---|
| OWASP Top 10:2025 — A03 | Primary category definition for Software Supply Chain Failures. |
| OWASP Dependency-Track | Software composition and SBOM-oriented supply-chain risk management. |
| OWASP Dependency-Check | Dependency vulnerability identification for supported ecosystems. |
| OWASP CycloneDX | SBOM and component inventory standard. |
| OWASP Vulnerable Dependency Management | Guidance for identifying and managing vulnerable dependencies. |
| MITRE CVE / CWE | Vulnerability and weakness identification references. |
| National Vulnerability Database | Public vulnerability information and vulnerability metadata. |
OWASP identifies A03:2025 as an expanded category covering failures across dependencies, development tooling, CI/CD, repositories, artifacts and related supply-chain processes. :contentReference[oaicite:2]{index=2}
The current OWASP Top 10:2025 list places Software Supply Chain Failures at A03, following Broken Access Control and Security Misconfiguration. :contentReference[oaicite:3]{index=3}