Skip to content

chore(deps): bump ruint to 1.20.0 for RUSTSEC-2026-0220 - #292

Merged
kevincodex1 merged 1 commit into
mainfrom
chore/bump-ruint-rustsec-2026-0220
Aug 3, 2026
Merged

chore(deps): bump ruint to 1.20.0 for RUSTSEC-2026-0220#292
kevincodex1 merged 1 commit into
mainfrom
chore/bump-ruint-rustsec-2026-0220

Conversation

@beardthelion

Copy link
Copy Markdown
Collaborator

cargo audit fails on main, so every open PR inherits a red check for a problem that is not in its diff.

ruint 1.17.2 carries RUSTSEC-2026-0220: Uint shift operations report incorrect overflow flags and truncate shift amounts. It reaches us transitively through alloy-primitives, which alloy pulls into both gitlawb-node and gl for the on-chain operator client.

Our own U256 use in operator.rs is pow, mul, div, and comparison rather than shifts, so the direct exposure looks limited. I did not audit alloy's internals, and the fix is a semver-compatible bump, so this is not worth reasoning about further.

Lockfile only, no manifest change.

The cost, since it is not free

The bump adds six arkworks crates (ark-ff, ark-ff-asm, ark-ff-macros, ark-serialize, ark-serialize-derive, ark-std), taking the tree from 715 to 721 dependencies. That arrives through ruint's own feature set rather than anything we asked for. Flagging it rather than passing over it, since a dependency-surface increase is exactly the kind of thing a lockfile-only diff hides.

None of it reaches gitlawb-core: the dependency purity check still passes at 83 allowlisted normal deps.

Verification

  • cargo audit exits 0 (was: 1 vulnerability)
  • cargo build --locked --release -p gitlawb-node
  • 564 node tests, 83 core tests
  • scripts/check-gitlawb-core-deps.sh OK

The three remaining advisories are unmaintained-crate warnings (core2, derivative, paste, proc-macro-error2), which do not fail the check and are out of scope here.

cargo audit fails on main, so every open PR inherits a red check for a
problem that is not in its diff.

ruint 1.17.2 carries RUSTSEC-2026-0220: Uint shift operations report
incorrect overflow flags and truncate shift amounts. It reaches us
transitively through alloy-primitives, which alloy pulls into both
gitlawb-node and gl for the on-chain operator client. Our own U256 use in
operator.rs is pow, mul, div, and comparison rather than shifts, so the
direct exposure looks limited, but alloy's internals are not audited here
and the fix is a semver-compatible bump.

Lockfile only; no manifest change. The bump adds six arkworks crates
(ark-ff, ark-ff-asm, ark-ff-macros, ark-serialize, ark-serialize-derive,
ark-std), taking the tree from 715 to 721 dependencies. That surface
increase is the cost of the fix and is worth noting rather than passing
over: it arrives through ruint's own feature set, not through anything we
asked for.

None of it reaches gitlawb-core, so the dependency purity check still
passes at 83 allowlisted normal deps.

Verified: cargo audit exits 0, cargo build --locked --release, 564 node
tests and 83 core tests pass.
@coderabbitai

coderabbitai Bot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 4bf16ddd-9ccf-4ae7-bf2b-b33f714b164c

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands.

@beardthelion

Copy link
Copy Markdown
Collaborator Author

@kevincodex1 ready when you are. Lockfile only, and it clears cargo audit for RUSTSEC-2026-0220 in ruint.

Worth knowing that the other open PRs are stale-green rather than unaffected: main and their head branches all carry ruint 1.17.2, and their audit checks passed on runs from 07-28 to 07-30, before the advisory landed in the fetched database. They go red on their next push.

The tradeoff to look at before merging is the six arkworks crates the bump drags in (715 to 721 deps). Those come from ruint's own features rather than anything we asked for. None of them reach gitlawb-core, so the purity check still passes at 83 allowlisted deps.

@jatmn jatmn left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM

@kevincodex1
kevincodex1 merged commit c926e1e into main Aug 3, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants