Skip to content

ci,workspace: enforce the cargo-deny advisories check and add dependency review - #15110

Open
avi-starkware wants to merge 1 commit into
avi/deps/03-dependabotfrom
avi/deps/04-advisories-gate
Open

avi-starkware wants to merge 1 commit into
avi/deps/03-dependabotfrom
avi/deps/04-advisories-gate

Conversation

@avi-starkware

@avi-starkware avi-starkware commented Sep 10, 2026 •

Copy link
Copy Markdown
Collaborator

Makes the advisories check an honest gate and delivers the "comment on the PR" behaviour:

  • main.yml cargo-deny job: no longer behind optimize_ci (a lockfile scan needs no build, and the Graphite optimizer was skipping it on stacked PRs). Split into a blocking cargo deny check advisories step and a continue-on-error licenses bans sources step: licenses still rejects the GPL-3.0 rhexdump, bans still reports starknet_proof_verifier's versionless git dependency (both need a decision, not a config edit), and sources passes. Job name unchanged, so merge-gatekeeper still sees it.
  • deny.toml: unmaintained = "workspace" (transitive unmaintained crates are not actionable here) and one { id, reason } ignore entry per remaining advisory, each naming the dependency that holds the version back.
  • New dependency_review.yml: actions/dependency-review-action v4.9.0 (SHA-pinned) with comment-summary-in-pr: always and warn-only: true. Requires the repo's Dependency graph (already on — alerts exist).
  • Cargo.lock: libz-sys 1.1.22 → 1.1.31 for RUSTSEC-2026-0418 (build script leaks environment variables), published after the check above was first green; nothing else moves.

Verified: cargo deny check advisories → advisories ok; full check → advisories ok, bans FAILED, licenses FAILED, sources ok (bans = the single deliberate starknet_proof_verifier wildcard finding from #15115; licenses = rhexdump GPL + 7 unlicensed stwo-circuits crates, see #15111); actionlint clean on the new workflow. Re-run on main; the ignore list now also covers RUSTSEC-2026-0367/0368/0369 (zip 0.6, held by cairo-vm 3.2.0) RUSTSEC-2026-0387 (crypto-bigint 0.5, held by elliptic-curve 0.13), and RUSTSEC-2026-0391/0398/0403 (zstd 0.13 / zstd-safe 7, a direct dependency whose fix needs the semver-breaking zstd 0.14.3).

🤖 Generated with Claude Code

@reviewable-StarkWare

Copy link
Copy Markdown

This change is Reviewable

@github-actions

github-actions Bot commented Sep 10, 2026 •

Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

OpenSSF Scorecard

PackageVersionScoreDetails
actions/actions/checkout d23441a48e516b6c34aea4fa41551a30e30af803 🟢 5.9
Details
CheckScoreReason
Code-Review🟢 10all changesets reviewed
Maintained⚠️ 00 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Binary-Artifacts🟢 10no binaries found in the repo
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Pinned-Dependencies🟢 3dependency not pinned by hash detected -- score normalized to 3
License🟢 10license file detected
Fuzzing⚠️ 0project is not fuzzed
Packaging⚠️ -1packaging workflow not detected
Signed-Releases⚠️ -1no releases found
Security-Policy🟢 9security policy file detected
SAST🟢 10SAST tool is run on all commits
Branch-Protection🟢 6branch protection is not maximal on development and all release branches
actions/actions/dependency-review-action 2031cfc080254a8a887f58cffee85186f0e49e48 🟢 7.7
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Code-Review🟢 10all changesets reviewed
Binary-Artifacts🟢 10no binaries found in the repo
Packaging⚠️ -1packaging workflow not detected
Security-Policy🟢 9security policy file detected
Token-Permissions🟢 9detected GitHub workflow tokens with excessive permissions
Pinned-Dependencies⚠️ 1dependency not pinned by hash detected -- score normalized to 1
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
License🟢 10license file detected
Fuzzing⚠️ 0project is not fuzzed
Signed-Releases⚠️ -1no releases found
Branch-Protection🟢 6branch protection is not maximal on development and all release branches
SAST🟢 9SAST tool detected but not run on all commits
cargo/libz-sys 1.1.31 🟢 6.3
Details
CheckScoreReason
Binary-Artifacts🟢 10no binaries found in the repo
Code-Review🟢 10all changesets reviewed
Maintained🟢 1016 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Pinned-Dependencies🟢 8dependency not pinned by hash detected -- score normalized to 8
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
Signed-Releases⚠️ -1no releases found
Security-Policy🟢 10security policy file detected
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
Packaging🟢 10packaging workflow detected

Scanned Files

  • .github/workflows/dependency_review.yml
  • Cargo.lock

@avi-starkware
avi-starkware force-pushed the avi/deps/04-advisories-gate branch from 5f41e54 to a04417c Compare September 14, 2026 09:51
@avi-starkware
avi-starkware removed this pull request from stack #15113 September 14, 2026 09:54
@avi-starkware
avi-starkware force-pushed the avi/deps/04-advisories-gate branch from a04417c to c74378d Compare September 14, 2026 10:15
@avi-starkware
avi-starkware force-pushed the avi/deps/04-advisories-gate branch from c74378d to 5939a35 Compare September 14, 2026 10:38
@avi-starkware
avi-starkware marked this pull request as ready for review September 14, 2026 11:16
@cursor

cursor Bot commented Sep 14, 2026 •

Copy link
Copy Markdown

PR Summary

Medium Risk
Advisories now fail PRs unless explicitly ignored in deny.toml, which tightens supply-chain gating but leaves documented exceptions; dependency review and non-blocking license/ban checks reduce merge friction.

Overview
RustSec advisories become a blocking CI gate, while license, ban, and source checks stay informational until known policy issues (GPL rhexdump, starknet_proof_verifier wildcard dep) are resolved.

The cargo-deny job no longer depends on Graphite optimize_ci, so lockfile scans run on every PR. It is split into a required cargo deny check advisories step and a continue-on-error step for licenses bans sources. deny.toml adds unmaintained = "workspace" and a documented ignore list for remaining advisories that are blocked by upstream or semver-breaking upgrades.

A new .github/workflows/dependency_review.yml runs GitHub’s dependency review on PRs (warn-only, always posts a comment summary). Cargo.lock bumps libz-sys from 1.1.22 to 1.1.31.

Reviewed by Cursor Bugbot for commit a72f91f. Bugbot is set up for automated code reviews on this repo. Configure here.

@github-actions

Copy link
Copy Markdown

There hasn't been any activity on this pull request recently, and in order to prioritize active work, it has been marked as stale.
This PR will be closed and locked in 7 days if no further activity occurs.
Thank you for your contributions!

@github-actions github-actions Bot added the stale label Oct 15, 2026
@avi-starkware
avi-starkware force-pushed the avi/deps/04-advisories-gate branch from 5939a35 to 356a865 Compare October 18, 2026 10:15
@avi-starkware
avi-starkware removed this pull request from stack #15116 October 18, 2026 10:16

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 356a865. Configure here.

Comment thread deny.toml
# Only fail on unmaintained crates that are direct dependencies of a workspace crate. An
# unmaintained transitive dependency cannot be acted on here: it is the intermediate crate that
# has to drop or replace it first.
unmaintained = "workspace"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unmaintained scope skips direct dependencies

Medium Severity

unmaintained = "workspace" matches only workspace member crates, not their direct dependencies. External crates are the transitive scope, so unmaintained advisories on direct deps such as paste and bincode are dropped. The new blocking advisories gate therefore never fails on an unmaintained third-party crate.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 356a865. Configure here.

@avi-starkware
avi-starkware force-pushed the avi/deps/04-advisories-gate branch 3 times, most recently from 0ba2cc3 to 88d1595 Compare October 29, 2026 10:53
@avi-starkware
avi-starkware force-pushed the avi/deps/04-advisories-gate branch from 88d1595 to ea20bdf Compare October 29, 2026 12:19
@avi-starkware
avi-starkware force-pushed the avi/deps/04-advisories-gate branch 2 times, most recently from 217d6a9 to 585711b Compare October 29, 2026 14:10
…ncy review

The advisories check now fails CI instead of only warning, and it no longer carries the
optimize_ci skip condition, which was letting stacked pull requests past it. Each advisory that
cannot be resolved today is listed in the deny.toml ignore list with a reason naming the
dependency that holds the vulnerable version back. The licenses check still rejects the GPL-3.0
rhexdump and the bans check still reports starknet_proof_verifier's versionless git dependency,
while sources passes; the three keep running non-blocking in a separate step until the first two
are decided. A dependency review workflow comments the dependency changes of a pull request on
the pull request itself in warn-only mode, so it never fails the check.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@avi-starkware
avi-starkware force-pushed the avi/deps/04-advisories-gate branch from 585711b to a72f91f Compare October 29, 2026 16:19
@github-actions

github-actions Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

Artifacts upload workflows:

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants