Repository navigation
fix(deps): bump ctutils to 0.4.5 for RUSTSEC-2026-0385 - #8560
Conversation
cargo-deny fails the Security check on ctutils 0.4.2 (RUSTSEC-2026-0385) on main and every Rust PR. Lockfile-only bump in the workspace, desktop Tauri, and feature-flag fixture lockfiles. Co-authored-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Logan Johnson <loganj@squareup.com>
🔐 Codex Security Review
Review SummaryOverall Risk: NONE
FindingsNo concrete security, correctness, or reliability findings were identified. Notes
Generated by Codex Security Review | |
jedwards27
left a comment
There was a problem hiding this comment.
Verdict: APPROVE
Reviewed: 016310d3cc44688779a7d517a13d9cc8024ddfa8..e931db2bcd2c22bce8daef68ae6f881608553753 (exact head e931db2bcd2c22bce8daef68ae6f881608553753)
Risk: high by class because this is a Rust security dependency/lockfile change that reaches relay, desktop Tauri, and a fixture lockfile; low implementation complexity because the source and manifests are unchanged.
Behavior/contracts traced: root, desktop Tauri, and feature-flag fixture Cargo.lock consistency; ctutils reverse dependency graph; root cargo-deny advisory gate for RUSTSEC-2026-0385; repo MSRV compatibility; exact-head CI coverage for Rust, desktop, relay/PostgreSQL, security, packaging/build jobs, and DCO.
Findings: none. The diff only updates the ctutils package block from 0.4.2 to 0.4.5 plus checksum in the three repository lockfiles. I found no source, manifest, deny.toml, package-count, stale-lockfile, or direct-reference drift.
Author action: none.
Verification owner: none for the author. CI/reviewer evidence covers this PR’s contract. Separate security-policy hygiene noted during review — pre-existing desktop-only cargo-deny advisories and a pre-existing stale RUSTSEC-2026-0381 ignore warning — is not introduced by this PR and is not a #8560 blocker.
Validation at exact head e931db2bcd2c22bce8daef68ae6f881608553753:
- Reviewed
git diff --name-status/ lockfile hunks against base andgit diff --check; scope is exactlyCargo.lock,desktop/src-tauri/Cargo.lock, andcrates/buzz-feature-flags/tests/fixtures/relay-feature-selection/Cargo.lock. - Verified all three changed lockfiles resolve
ctutils v0.4.5; reverse dependency checks show the expected transitive reachability throughdigestand downstream Rust/desktop consumers. - Verified root
cargo-deny --locked check advisoriesfails on base forRUSTSEC-2026-0385and passes at head; full rootcargo-deny --locked checkpasses at head. - Verified
cargo check --locked --workspacepasses at head. - Verified
cargo test --locked -p buzz-feature-flags --test relay_feature_selection_contractpasses 5/5 at head. - Re-checked GitHub status rollup immediately before approval: exact head is still
e931db2bcd2c22bce8daef68ae6f881608553753, with no failing or pending required checks observed; relevant Rust, Desktop, Relay/PostgreSQL, Security, macOS/Windows desktop build, Docker, Semgrep, zizmor, and DCO checks are green or intentionally skipped.
Manual/native evidence: no manual UI/native app run. This is a lockfile-only dependency bump with no source/manifest/user-visible behavior change; desktop/native build coverage comes from exact-head CI.
Residual risk: standalone desktop-manifest cargo-deny remains noisy from advisories that are red on both base and head, while the repository’s actual security workflow runs root cargo-deny and is green after this PR. I did not treat that pre-existing per-lockfile gap as an author action for #8560.
🤖
Summary
On 2026-10-23, RustSec published RUSTSEC-2026-0385 against
ctutils, a constant-time helper crate used by the RustCrypto hashing and HMAC crates. Some of its functions were meant to run in constant time, so their timing would reveal nothing about secret values, but in versions before 0.4.4 they could compile to code that branches on those values. Since the advisory came out,cargo-deny checkreports advisories as failed. That breaksSecurity Domain / Securityonmainand on every PR that runs the Rust security job.This PR changes
ctutilsfrom 0.4.2 to 0.4.5 in the three lockfiles that pin it:Cargo.lock,desktop/src-tauri/Cargo.lock, and thebuzz-feature-flagsrelay-feature-selection test fixture. No other packages change.ctutils(non-constant-time mask generation andu128comparisons)Related issue
N/A. I searched open and closed PRs for
ctutilsandRUSTSEC-2026-0385and found none.Testing
cargo deny check advisories:advisories ok. Onorigin/mainthe Security job fails on this advisory.cargo check --workspacepasses.cargo test -p buzz-feature-flags --test relay_feature_selection_contractpasses. This test compiles the fixture with--locked.