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

fix(zcash): preflight the batch in the QR display path

Public commit record

What the developer wrote

Authored by Adam Tucker

97/100 · Strong
fix(zcash): preflight the batch in the QR display path

The QR batch scan opens the Zcash batch view directly
(gui_scan_widgets.c), bypassing the model check step, so the preflight
that populates g_checkedBatch never ran before the view parsed for
display. Parsing then failed with "no checked Zcash batch available"
because the checked container was NULL.

Run the batch preflight from GuiParseZcashBatchData when g_checkedBatch
is missing (the USB path pre-checks via service_resolve_ur, so guard on
NULL to avoid a redundant second preflight), and surface a preflight
failure through the existing batch parse-error window.
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Explains rationale or failure mode
The short version

What changed, and why it matters

This commit fixes a bug in the Keystone 3 hardware wallet's Zcash QR-code batch transaction flow. Previously, scanning a Zcash batch QR code skipped a required safety preflight check, causing the wallet to fail with a confusing 'no checked Zcash batch available' error instead of showing a meaningful error. The patch runs the missing preflight inside the QR display path and surfaces any failure message to the user. It is a reliability/usability fix rather than a demonstrated exploit.

Recommended action

Treat as a defensive hardening/bugfix. Review whether other QR-opened views (e.g., BTC multi-sig, other cypherpunk coins) similarly bypass model preflight checks. Ensure g_batchPreflightError is always zero-initialized and bounded (snprintf_s with sizeof is used correctly). No urgent patch rollout required unless the missing preflight is shown to enable a transaction-level attack.

Security signals we found

01

Missing input validation / preflight bypass in QR code display path

02

NULL-checked container used before population

03

Error-message surfacing improved to avoid generic failure dialogs

04

Potential for user confusion or denial-of-service via malformed Zcash batch QR (no exploit demonstrated)

Risk score

Why this scored 30/100

Our methodology →
Potential impact 8/30
Exploitability 4/25
Stealth signal 3/15
Affected reach 5/15
Confidence 7/10
Evidence quality 3/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.