Third-party package dependencies · Locking & integrity

Pin direct dependencies of applications to exact versions

When it fails: Application manifests use version ranges.

CB-DEP-LOCK-005lowdraftpartialprofile hardened

Status draft: not part of any release yet, may still change.

Description

In deployable applications, direct dependencies are declared with an exact version, not a range. Version changes happen only through a reviewed change to the manifest.

Does not apply to libraries meant to be consumed by others, which should declare compatible ranges.

Rationale

With a lockfile and frozen installs, ranges are already safe in builds. Exact versions also protect the moments when the lockfile is regenerated, and make every upgrade visible in the manifest diff.

Impact

More update proposals to review.

Audit

  1. Check application manifests for direct dependencies declared with a range.

Automated: every check must pass. Scanners report each check by its id.

postmortem

exact versions in package.json, Cargo.toml, pyproject.toml, composer.json

command: postmortem harden --json
control: CB-DEP-LOCK-005
coverage: auto

Remediation

  1. Replace ranges with the exact version currently in the lockfile.

References

Mappings

FrameworkIDRelationNote
NIST SP 800-53 Rev. 55.1.1CM-2related

How this control relates to the other framework's: equivalent, stricter, looser, partial or related.

People and lifecycle

AuthorsAlice
Introduced inv1.0.0
Created, updated2026-10-16, 2026-10-16