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

Merge pull request #569 from LedgerHQ/client-fixes

Public commit record

What the developer wrote

Authored by Salvatore Ingala

58/100 · Thin
Merge pull request #569 from LedgerHQ/client-fixes

Client fixes on PSBTv2 field handling
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
The short version

What changed, and why it matters

This commit fixes how Ledger's Bitcoin client libraries convert older PSBTv0 transaction data into the newer PSBTv2 format that Ledger hardware wallets expect. The changes correct several field-handling bugs: the transaction locktime is now written to the right place, missing input sequence numbers are treated as the default final value, and the Rust client now forwards unknown PSBTv2 fields (such as required locktimes) instead of dropping them. It also rejects malformed PSBTs where v0 and v2 fields contradict each other, rather than producing an invalid PSBT that the device would refuse. These are client-side robustness fixes; they do not appear to be a security patch for the device firmware itself.

Recommended action

Users of the Ledger Bitcoin client libraries (Python, JS, Rust) should upgrade to the versions released with this commit (Python 0.4.2, Rust 0.7.0) to obtain correct PSBTv2 handling and avoid transaction signing failures or malformed PSBTs. Developers integrating these libraries should review PSBTv2 field expectations in BIP-370 and ensure they do not rely on the previous incorrect conversion behavior.

Security signals we found

01

PSBTv0-to-v2 conversion bug fixes

02

Missing input sequence defaulted to 0xffffffff (final sequence)

03

Locktime assigned to transaction object instead of PSBT object

04

Unknown/proprietary PSBTv2 fields now forwarded in Rust client

05

Malformed hybrid v0/v2 PSBTs rejected to avoid duplicate/conflicting keys

06

Version bumps in Python (0.4.1→0.4.2) and Rust (0.6.2→0.7.0) clients

Risk score

Why this scored 37/100

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