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

wire: make ble message handling use the same logic as other inputs

Public commit record

What the developer wrote

Authored by Jon Griffiths

73/100 · Adequate
wire: make ble message handling use the same logic as other inputs

The ble logic was the only user of reject_incomplete, which it used to
process existing buffer data inconsistently.

Now that all handlers use the same logic we can investigate strategies
for attempting to re-sync message streams when an error occurs.
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
The short version

What changed, and why it matters

This commit refactors how Bluetooth Low Energy (BLE) messages are handled in the Blockstream Jade hardware wallet so that BLE uses the same message-parsing path as USB serial and TCP (QEMU). Previously, BLE had a special 'reject_incomplete' flag that could discard buffered data when the buffer was full. The change removes that special-case logic and makes all input sources feed data the same way. The commit message frames this as a cleanup that enables future work on recovering from message-stream errors, not as a security fix. There is no direct evidence in the diff of an exploitable vulnerability, but unifying input handling reduces the chance of subtle BLE-only bugs such as partial-message truncation or inconsistent state.

Recommended action

Treat as a defensive hardening/cleanup change rather than an urgent security patch. Reviewers should verify that the new BLE chunked-copy loop cannot cause `handle_data()` to be called with `new_data_len` that, combined with `ble_read`, exceeds `MAX_INPUT_MSG_SIZE`, and that the removal of `reject_incomplete` does not introduce a denial-of-service path via unbounded buffering. Consider requesting a security note from the vendor if this change was motivated by a reported issue.

Security signals we found

01

Refactor of untrusted input parsing path for BLE, serial, and TCP

02

Removal of BLE-specific `reject_incomplete` flush behavior that could drop buffered bytes

03

Unification of input handling across all transport sources

04

No explicit bounds-check changes; existing `MAX_INPUT_MSG_SIZE` checks remain

05

Commit message mentions future 're-sync message streams when an error occurs' but does not claim a current vulnerability

Risk score

Why this scored 48/100

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