Chapter 2 of 9 · 5 checks · 3 min
Dependency updates and review
Checks that updates arrive regularly, wait long enough for bad releases to be caught, and are reviewed for known vulnerabilities before they merge.
An update bot covers every ecosystem in the repository, including GitHub ActionsMust
Why it matters and how to check
Pinning without updates turns into running old, vulnerable code. Scorecard's Dependency-Update-Tool check (rated High risk) looks for Dependabot or Renovate. The ecosystem list is easy to get wrong: a Dependabot file that covers
npmbut notgithub-actionsordockerleaves those pins frozen forever.To verify: open
.github/dependabot.ymlor the Renovate config and list the ecosystems and directories it covers. Compare that with every manifest, Dockerfile and workflow directory in the repository. Then check the bot's recent pull requests: if the newest is months old, it is configured but not working.Example
YAML version: 2 updates: - package-ecosystem: "npm" directory: "/" schedule: interval: "weekly" cooldown: default-days: 3 groups: minor-and-patch: update-types: ["minor", "patch"] - package-ecosystem: "github-actions" directory: "/" schedule: interval: "weekly"Routine version updates wait a few days after a releaseShould
Why it matters and how to check
Malicious versions are often found and pulled within days of being published. The OpenSSF Concise Guide recommends keeping dependencies up to date after a cooldown of roughly three days for updates that do not fix a known vulnerability. Dependabot's
cooldownoption delays version updates without delaying security updates, and npm'smin-release-agesetting refuses versions younger than a given number of days.To verify: check the update bot config for a cooldown (Dependabot
cooldown, RenovateminimumReleaseAge). Open a recent bot pull request and compare its creation date with the release date of the version it proposes. Confirm security updates are not delayed by the same rule.Pull requests that change dependencies are blocked if they add known vulnerabilitiesMust
Why it matters and how to check
GitHub's dependency review action compares the dependency changes in a pull request and fails the check when it finds vulnerable versions. It can also enforce a licence allow or deny list. It is available for all public repositories, and for private ones with GitHub Code Security or Advanced Security. Other platforms have equivalents, such as OSV-Scanner run on the diff.
To verify: confirm the check runs on pull requests and is a required status check on the default branch. Then open a test pull request that adds a package version with a published advisory and confirm the merge is blocked.
Example
YAML name: dependency-review on: pull_request permissions: contents: read jobs: review: runs-on: ubuntu-latest steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v5.0.0 with: fail-on-severity: highKnown vulnerabilities in direct and transitive dependencies are monitored and triagedMust
Why it matters and how to check
New advisories arrive for code you already ship. The OpenSSF Concise Guide says to monitor known vulnerabilities in direct and indirect dependencies and update quickly when one affects you. Scorecard's Vulnerabilities check looks for open, unfixed vulnerabilities using OSV data.
To verify: open the alerts view for the repository (Dependabot alerts, or your scanner's dashboard). Check that someone owns it, that critical and high findings have a ticket or a recorded decision, and that the oldest open critical is not older than your own policy allows. Run
npm audit,pip-auditorosv-scanneragainst the lockfile and compare the output with the dashboard.Update pull requests are reviewed and tested, not merged unseenShould
Why it matters and how to check
An update bot is a convenient way for a compromised release to reach production if its pull requests auto-merge on green. Grouping minor and patch updates keeps the volume manageable so a person can still look at the diff, especially lockfile changes that add new transitive packages or install scripts.
To verify: read the auto-merge rules for bot pull requests. If any exist, confirm they apply only to low-risk updates (patch versions of development tools, for example), wait for the full test suite and still respect the cooldown. Spot check three merged bot pull requests for a human review.