WebOTG Security Testing Library ● Public reference
WebOTG
WEBOTG SECURITY TESTING PROCEDURE

WebOTG-SCF-001 — Software Supply Chain Security Review

A structured procedure for identifying vulnerable, outdated, unmaintained or untrusted software components and weaknesses in the dependency, build, CI/CD, artifact and software distribution supply chain of a web application.

WebOTG ID SCF-001 OWASP A03:2025 Type Supply Chain Review Method Manual + Tool-Assisted Version 1.0
01 / OBJECTIVE

Objective

What are we verifying?

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.

A03 is broader than vulnerable libraries

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}

02 / SCOPE

Scope

Review the complete software supply chain where applicable:

Direct application dependencies
Transitive dependencies
Client-side JavaScript packages
Server-side libraries and frameworks
Operating system and runtime components
Container images and base images
Package and artifact repositories
Source-code repositories
CI/CD pipelines and build systems
Developer tooling and extensions
Infrastructure-as-code dependencies
Third-party software integrations
03 / PREREQUISITES

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.
04 / METHODOLOGY

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?
05 / PROCEDURE

Test procedure

01
Identify application technologies Record the application language, runtime, framework, package managers, databases, containers and major external components.
02
Collect dependency manifests Review manifests and lock files such as package.json, composer.json, requirements files, Maven/Gradle files or equivalent technology-specific dependency declarations.
03
Resolve the complete dependency graph Identify both direct and transitive dependencies rather than reviewing only the packages explicitly declared by the application.
04
Determine actual deployed versions Verify that the versions recorded in source configuration correspond to the software actually built and deployed.
05
Check vulnerability advisories Compare identified components against appropriate vulnerability databases, vendor advisories and package ecosystem security advisories.
06
Check maintenance status Determine whether critical components are unsupported, abandoned, unmaintained or otherwise unable to receive security updates.
07
Review package sources Determine whether dependencies originate from trusted package registries or other controlled and verified sources.
08
Review CI/CD controls Examine who can modify workflows, build software, publish artifacts and promote releases to production.
09
Review artifact integrity Determine whether released artifacts can be traced to their source and whether unauthorized modification can be detected.
10
Record findings and evidence Document affected components, versions, vulnerability references, supply-chain weakness, impact and remediation status.
06 / COMPONENT INVENTORY

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

package.json EXAMPLE
{
    "dependencies": {
        "example-framework": "4.2.1",
        "example-library": "2.8.0",
        "example-client": "1.6.4"
    }
}
Manifest-only review is insufficient

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.

07 / ASSESSMENT

Supply chain risk assessment

VULNERABLE COMPONENT

A dependency is affected by a known security vulnerability that is relevant to the deployed application.

OUTDATED COMPONENT

A component is significantly behind supported releases and may no longer receive required security fixes.

UNMAINTAINED COMPONENT

A dependency has no effective maintainer or security-update path.

UNTRUSTED SOURCE

Software is obtained from an uncontrolled, unexpected or insufficiently trusted source.

UNSAFE PIPELINE

Weak CI/CD access controls allow unauthorized modification or promotion of software.

ARTIFACT RISK

Released artifacts lack adequate integrity, provenance or controlled promotion mechanisms.

NO CHANGE CONTROL

Dependency, build or repository changes cannot be reliably attributed, reviewed or traced.

EXCESSIVE DEPENDENCIES

Unnecessary components increase the application's dependency and attack surface.

Do not automatically classify every outdated package as a vulnerability

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.

08 / VERIFICATION

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.

01
Confirm the component identity Verify the package name, ecosystem and exact installed or deployed version.
02
Confirm the advisory Verify the reported issue against an authoritative vulnerability or vendor advisory.
03
Confirm affected versions Determine whether the deployed version falls within the advisory's affected range.
04
Determine application exposure Determine whether the vulnerable functionality is used or reachable by the application.
05
Confirm remediation Upgrade, replace, isolate or otherwise mitigate the affected component according to the approved risk treatment.
06
Re-scan and re-test Confirm that the vulnerable version is no longer present and that application functionality remains correct.
09 / FAILURE CRITERIA

Failure criteria

A production component is affected by a relevant known vulnerability and no appropriate remediation or compensating control exists.
Critical dependencies are unsupported or unmaintained without an approved risk treatment.
Direct and transitive dependencies are not adequately inventoried.
Dependencies are obtained from sources that cannot be adequately trusted or verified.
Unauthorized users can modify build or dependency configuration and promote resulting software.
Production artifacts can be modified without adequate integrity controls or traceability.
Dependency changes cannot be reliably attributed, reviewed or tracked.
The organization has no practical process for monitoring and responding to relevant component security advisories.
Example finding SUPPLY CHAIN FAILURE

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.

10 / REMEDIATION

Remediation

Establish a continuous software supply chain management process rather than treating dependency updates as an occasional maintenance task.

Recommended controls

  1. Maintain a current inventory of direct and transitive dependencies.
  2. Generate and maintain a Software Bill of Materials for released software where appropriate.
  3. Monitor relevant vulnerability databases and vendor security advisories.
  4. Remove unused dependencies and unnecessary components.
  5. Prefer maintained components with a clear security update path.
  6. Obtain dependencies from trusted package sources.
  7. Use lock files or equivalent dependency resolution controls where appropriate.
  8. Protect source repositories and package publication credentials.
  9. Apply MFA and least privilege to critical supply-chain accounts and systems.
  10. Protect CI/CD workflow configuration against unauthorized modification.
  11. Separate code development, build approval and production promotion responsibilities where the risk warrants it.
  12. Protect artifacts through controlled repositories, provenance and integrity mechanisms.
  13. Test dependency updates before production deployment.
  14. Use staged or controlled deployment for high-risk updates where appropriate.
  15. Maintain a documented process for responding to newly discovered supply-chain vulnerabilities.

Example dependency update

Dependency change EXAMPLE
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.
Updating a dependency is not the complete remediation

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.

11 / EVIDENCE

Evidence requirements

Application technology inventory
Dependency manifest
Lock file or resolved dependency graph
SBOM where available
Vulnerability advisory reference
Affected component and version
Evidence of application exposure
CI/CD or supply-chain configuration evidence
Remediation record
Post-remediation scan
Functional verification
Final PASS / FAIL determination
Do not publish internal supply-chain information

Public evidence must not expose private repository URLs, credentials, package publishing tokens, internal CI/CD configuration, private infrastructure details or other sensitive organizational information.

12 / CLASSIFICATION

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 classification notice

WebOTG-SCF-001 is a WebOTG-defined verification procedure. The identifier is not an OWASP-defined test identifier.

13 / REFERENCES

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}