OWASP SCVS Unknown Components

ID

owasp_scvs/known_components

Severity

critical

Category

Inventory

Levels

L1, L2, L3

Optional

false

Description

All direct and transitive components and their versions are known at completion of a build.

Rationale

If you do not know the components used and their respective versions, then you can miss security vulnerabilities in components, have license issues, or cannot resolve provenance for large parts of your software.

Verification

Although direct dependencies can be read from dependencies specified in project files (often specific for popular package managers), to resolve the full dependencies graph tools either tools like package manager commands, SCA, or a valid SBOM provided by component providers should be used.

Xygeni’s scan-deps command is one of such tools, and it is used for automating verification of the checkpoint.

Remediation

The build process should get all dependencies with package managers, and never add binaries or packages from other sources, with the possible exception of source code "snapshots" compiled at build time. Components involved and their versions should be clearly specified.

Small Print

Please note that the checkpoint does not say anything about whether versions should be open (perhaps using semver requirements for automatic upgrade), or fully fixed.