Skip to content

CSHLD-2073: correct RUSTSEC-2026-0387 ignore reason in deny.toml - #451

Open
Ranjna-G wants to merge 1 commit into
masterfrom
CSHLD-2073-crypto-bigint-ignore-reason
Open

Ranjna-G wants to merge 1 commit into
masterfrom
CSHLD-2073-crypto-bigint-ignore-reason

Conversation

@Ranjna-G

@Ranjna-G Ranjna-G commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Follow-up to #448 per review feedback (r4393606887): corrects the recorded rationale for the RUSTSEC-2026-0387 (crypto-bigint constant-time) advisory ignore. The old reason claimed k256's usage "does not expose the affected operations to attacker-controlled input" — that is wrong: k256's Scalar add/sub/neg go through crypto-bigint add_mod/sub_mod/neg_mod during MuSig2 partial signing, so the vulnerable code is exercised.

The correct rationale is target-based: wasm-utxo executes under a JS JIT, which gives no constant-time guarantees regardless of the crypto-bigint version — so the patched >=0.7.6 changes nothing for this target.

Exit condition (checked 2026-10-28): k256 0.14.0 is released and its elliptic-curve 0.14 line drops crypto-bigint entirely, but wasm-utxo reaches k256 only through musig2, whose latest release (0.4.1) still pins k256 ^0.13 with no 0.14 work in its repo. The ignore is deleted once musig2 moves to k256 0.14+ (cargo-deny warns on unmatched ignores once it applies).

Linear: CSHLD-2073

Security-team approval

@BitGo/security — per the review request on #448, this advisory-ignore rationale needs security-team sign-off. The claim to validate: ignoring RUSTSEC-2026-0387 (crypto-bigint constant-time issues) is acceptable for wasm-utxo because the wasm-under-JS-JIT execution environment provides no constant-time guarantees independent of the crypto-bigint version.

Changes

  • packages/wasm-utxo/deny.toml — corrected RUSTSEC-2026-0387 ignore reason and the explanatory comment: vulnerable ops ARE reached via k256 MuSig2 partial signing; constant-time concern is moot under a JS JIT.

Test Plan

  • tomllib parse of deny.toml — OK.
  • cargo deny check advisories unchanged in behavior (same ignore id, only the reason string differs).

@linear-code

linear-code Bot commented Oct 28, 2026

Copy link
Copy Markdown

CSHLD-2073

The recorded rationale was wrong: k256's Scalar add/sub/neg do reach
crypto-bigint add_mod/sub_mod/neg_mod during MuSig2 partial signing, so
the "not exposed to attacker-controlled input" argument does not hold.
The correct rationale is target-based: wasm-utxo executes under a JS
JIT, which gives no constant-time guarantees regardless of the
crypto-bigint version, so the patched >=0.7.6 changes nothing here.
Keep the delete-when-k256-moves-to-elliptic-curve-0.14+ exit condition.

Security-team approval requested on the PR.

Ticket: CSHLD-2073
@Ranjna-G
Ranjna-G force-pushed the CSHLD-2073-crypto-bigint-ignore-reason branch from 57deed5 to 0baa2da Compare October 28, 2026 05:46
@Ranjna-G
Ranjna-G marked this pull request as ready for review October 28, 2026 06:03
@Ranjna-G
Ranjna-G requested a review from a team as a code owner October 28, 2026 06:03

@claude claude 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.

Claude Code Review

This repository is configured for manual code reviews. Comment @claude review for a one-time review, or @claude review always to subscribe this PR to a review on every future push.

Tip: disable this comment in your organization's Code Review settings.

@Ranjna-G
Ranjna-G enabled auto-merge October 28, 2026 06:03

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

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant