Skip to content

deny: accept RUSTSEC-2026-0387 for the verify-only TSA path (revisit by 2027-01-31) - #51

Merged
zachyking merged 1 commit into
mainfrom
deps/ignore-rustsec-2026-0387-verify-only
Oct 26, 2026
Merged

zachyking merged 1 commit into
mainfrom
deps/ignore-rustsec-2026-0387-verify-only

Conversation

@zachyking

Copy link
Copy Markdown
Member

main's supply-chain job fails since about 2026-10-24 on RUSTSEC-2026-0387: timing variability in crypto-bigint operations intended to be constant-time. The fix is crypto-bigint >= 0.7.6.

Facts (lead-verified on origin/main 0f610bb):

  • cargo tree -i crypto-bigint -e normal --workspace --all-features shows crypto-bigint 0.5.5, via elliptic-curve 0.13.8, used by ecdsa 0.16.9, p256 0.13.2, p384 0.13.1 and primeorder 0.13.6. All of these come from averin-decision-core, under the optional rfc3161 feature.
  • Shipped uses are signature verification only: verify_ecdsa_p256 and verify_ecdsa_p384 in core/src/rfc3161.rs, which call VerifyingKey::from_sec1_bytes then verify or verify_prehash.
  • The inputs are the pinned TSA public key, the token's signature and the signed attributes. All of them are public, so timing variability reveals nothing secret.
  • P-256 and P-384 signing (make_test_token and similar) is compiled only under #[cfg(any(test, feature = "test-tsa"))]. Only CI enables test-tsa (cargo test --features test-tsa).
  • No release in the 0.13 line depends on a fixed crypto-bigint. Fixing it means migrating to the RustCrypto 0.14 line (ecdsa 0.17, p256 0.14, p384 0.14). That is an API change in the verification path, too large for the release-1 window.

Change. One ignore entry in deny.toml with the reason written out. It follows the same pattern as the existing RUSTSEC-2023-0071 entry, which covers the verify-only rsa path. It includes a revisit date (2027-01-31) and the follow-up: migrate after release 1 and remove the entry.

Checks.

  • cargo deny check advisories: advisories ok.
  • Kit claims: 745 checks, 0 failures.
  • Legacy check-claims.py: passes.

This unblocks averin#50 and every averin PR, whose supply-chain job inherits the failure from main.

🤖 Generated with Claude Code

…evisit date

crypto-bigint 0.5.5 is reached only through elliptic-curve 0.13 (ecdsa
0.16, p256 0.13, p384 0.13) under the rfc3161 feature, and shipped code
only verifies RFC 3161 timestamp-authority signatures over public inputs
(core/src/rfc3161.rs). Signing is cfg(test) / test-tsa only. No 0.13-line
release depends on a fixed crypto-bigint. Same position as the existing
RUSTSEC-2023-0071 entry for the verify-only rsa path. Migrate to the
RustCrypto 0.14 line after release 1; revisit by 2027-01-31.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@zachyking
zachyking merged commit 26c78f8 into main Oct 26, 2026
104 of 108 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.

1 participant