AI-generated analysisPublished automatically and not human-verified. Validated context appears in community notes below.
← Watch feed
Low 37 Bitcoin

Add Zcash batch signing for shielded PCZTs

Public commit record

What the developer wrote

Authored by Adam Tucker

45/100 · Thin
Add Zcash batch signing for shielded PCZTs
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
The short version

What changed, and why it matters

This commit adds a new Zcash batch-signing feature for shielded transactions and fixes a UI bug where Zcash signing could freeze if the response QR code could not be generated. The changes introduce new Rust code to validate, parse, and sign batches of Zcash PCZT messages, plus new C UI screens to review and approve those batches. It also tightens error handling so that QR/USB generation failures are reported instead of leaving the device stuck. There is no direct evidence in the commit of an exploitable vulnerability, but the size and complexity of the new signing path means it should be reviewed carefully.

Recommended action

Treat this as a feature addition with embedded bug fix rather than a confirmed vulnerability. Review the new batch signing path for memory safety across the Rust/C FFI boundary, ensure the 35-message RAM budget is enforced under adversarial payload sizes, verify that seed zeroization happens on all error paths, and confirm that the `encode_full_response` single-UR path cannot be abused to bypass QR fragmentation limits. Regression-test the QR-generation failure fix and the new batch UI flows before release.

Security signals we found

01

New batch signing path for Zcash shielded PCZTs with 35-message limit

02

Atomic batch semantics: any invalid message aborts the whole batch

03

Preflight check `ensure_pczt_has_signable_shielded_action` prevents silent no-signature results

04

Postflight check `ensure_signable_shielded_actions_are_signed` verifies signatures were inserted

05

Batch mode rejects transparent inputs and Sapling spends/outputs

06

Payload digest verification and duplicate ID/payload detection in batch validation

07

UR response generation failure now emits an error signal instead of stalling

08

New unsafe FFI functions exposed for batch check/parse/sign

09

Dependency switched from crates.io `ur-registry` to a Git fork for new registry types

Risk score

Why this scored 37/100

Our methodology →
Potential impact 8/30
Exploitability 7/25
Stealth signal 5/15
Affected reach 6/15
Confidence 7/10
Evidence quality 4/5
Human-validated context

Community notes

Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.

No validated notes yet.

The AI analysis stands alone for now. Submit a note if you can add evidence or important context.