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

For external input amounts, only show if trustworthy

Public commit record

What the developer wrote

Authored by Salvatore Ingala

85/100 · Strong
For external input amounts, only show if trustworthy

Because legacy and SegwitV0 sighash algorithm doesn't commit to the
other inputs' amounts, the amount of external inputs is only
trustworthy if validated via the non-witness-utxo.
That is not a problem for taproot.
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
The short version

What changed, and why it matters

This commit fixes a security issue in Ledger's Bitcoin app where the device could display a fake external input amount or fee to the user. When signing transactions with external inputs (coins controlled by someone else), the app previously trusted amounts supplied only via an unverified 'witness UTXO' for older SegWit v0 and legacy inputs. Because those signature types do not lock in the amounts of other inputs, a malicious computer could lie about how much those external inputs are worth, making the shown total, net amount, or fee look wrong while still producing a valid transaction. The fix hides the untrustworthy external-input total and fee in those cases, showing only the net amount the user's own account moves. For Taproot inputs, the amounts are cryptographically committed, so the full display remains.

Recommended action

Treat this commit as a security-hardening fix. Ensure it is included in the next release, run the new regression tests, and consider whether similar witness-utxo trust assumptions exist in other coin apps or signing paths.

Security signals we found

01

Fixes incorrect trust assumption in UI display for external input amounts

02

Prevents malicious host from forging displayed fee/total via unverified witness-utxo

03

Adds state flag tracking unverified external amounts

04

Adds regression tests covering SegWit v0 and Taproot behavior

05

Updates existing test documentation to match stricter trust model

Risk score

Why this scored 66/100

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