Repository navigation
fix(deps): bump p256 to 0.14 for RUSTSEC-2026-0387 - #8592
Conversation
RustSec published RUSTSEC-2026-0387 against crypto-bigint: some operations meant to be constant-time could branch on secret values. cargo-deny now fails the Security job on main and every PR. crypto-bigint 0.5.5 came in only through p256 0.13 in buzz-push-gateway. p256 0.14 uses crypto-bigint 0.7.9, which is patched. The only API change the gateway hits is the SEC1 encoder, renamed from ToEncodedPoint::to_encoded_point to ToSec1Point::to_sec1_point. Co-authored-by: ART <ea39c1c8acf57180161ef4ba4ed68abf8589f5291956b909a5aa991fc66664ca@buzz.block.builderlab.xyz> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Bradley Axen <baxen@squareup.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
🔐 Codex Security Review
Review SummaryOverall Risk: NONE
FindingsNo concrete security, correctness, or reliability findings were identified. Notes
Generated by Codex Security Review | |
…s-work * origin/main: fix(deps): bump p256 to 0.14 for RUSTSEC-2026-0387 (#8592) Signed-off-by: Bradley Axen <baxen@squareup.com>
…gnore Cherry-picked from block/buzz d676c7b (block#8592): p256 0.13 -> 0.14 in buzz-push-gateway moves crypto-bigint 0.5.5 -> 0.7.9, which clears RUSTSEC-2026-0387 instead of ignoring it. The trigger recorded in deny.toml ("remove when p256 moves to the crypto-bigint 0.7 line") is met, so the fork's own ignore goes away and deny.toml diverges from upstream by one entry less. The Cargo.lock hunks applied cleanly on top of the fork's lock updates. Verified locally: cargo deny check (advisories ok), cargo check -p buzz-push-gateway --locked. The crate's own tests need a vendored OpenSSL build (dev-dependency) that this Windows host cannot produce, so they are left to CI. (cherry picked from commit d676c7b) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Summary
RustSec published RUSTSEC-2026-0387 against
crypto-bigint. Some of its operations meant to be constant-time could compile to code that branches on secret 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 (for example #8575 and #8579).crypto-bigint0.5.5 came in only throughp2560.13 →elliptic-curve0.13 inbuzz-push-gateway. The advisory has no 0.5.x fix; the patched line is 0.7.6+. This PR movesbuzz-push-gatewaytop2560.14, which usescrypto-bigint0.7.9.crypto-bigintp2560.13.2 → 0.14.0)Code changes:
p2560.14 renamed the SEC1 encoder fromToEncodedPoint::to_encoded_pointtoToSec1Point::to_sec1_point. The gateway calls it in two places, both to re-encode an App Attest public key as uncompressed SEC1 bytes. The tests call it in five more. Nothing else in the gateway's API use changed.Lockfile: only the
p256dependency chain changes:ecdsa,elliptic-curve,ff,group,primeorder,rfc6979andsec1move up a minor version.primefieldandwnafare added. The oldder/spki/pkcs8/pem-rfc7468/const-oid0.x versions that only this chain used are removed.desktop/src-tauri/Cargo.lockand thebuzz-feature-flagsfixture lockfile don't containcrypto-bigint, so they're unchanged.Exposure, for context: in production the gateway uses
p256only to verify App Attest signatures against public keys. Signing with a private key happens only in tests. So the timing issue didn't realistically apply here, but the bump clears the advisory instead of ignoring it.Related issue
N/A. I searched open and closed PRs for
RUSTSEC-2026-0387andcrypto-bigintand found none.Testing
cargo-deny check:advisories ok, bans ok, licenses ok, sources ok. Onorigin/mainthe Security job fails on this advisory.cargo test -p buzz-push-gateway --all-features: 82 passed, 18 ignored (the same tests are#[ignore]onmain).cargo clippy -p buzz-push-gateway --all-targets --all-features -- -D warningsis clean.cargo check --workspace --all-targetspasses.🤖 Generated with Claude Code