Allow exporting BIP-87 xpubs without explicit user approval
What changed, and why it matters
This commit expands an existing feature that lets a connected computer request extended public keys (xpubs) from a Ledger device without requiring the user to press 'Approve' on the device screen. It now allows this silent export for BIP-87 multisig derivation paths, matching the existing behavior for BIP-48. The change is presented by the developer as a consistency improvement, not as a security fix. It does not add new code paths; it only adds one more derivation-path standard to an existing allow-list.
Treat as a routine feature change rather than a security patch. Wallet software and multisig coordinators that use BIP-87 can now request xpubs silently, so users should understand that connecting the device to such software may disclose BIP-87 xpubs without an on-device prompt. No urgent action is required, but documentation should reflect that BIP-87 xpubs are exported under the same policy as BIP-48.
Security signals we found
Silent export of sensitive key material extended to an additional derivation standard
No user confirmation for xpub export on newly added BIP-87 paths
Change is framed by commit author as consistency improvement, not vulnerability remediation
No advisory, CVE, or security changelog language present in commit or references
Evidence from the diff
In src/handler/get_extended_pubkey.c, the function is_path_safe_for_pubkey_export() contains a switch on the BIP-32 purpose field. Paths with purposes 44, 48, 49, 84, and 86 were already treated as ‘safe for silent xpub export’ (no explicit user approval). The patch adds purpose 87 to that list, with the same hardened_der_len = 3 treatment as the others. BIP-87 defines a derivation scheme for multisig accounts, analogous to BIP-48. The change is one line and is consistent with the surrounding logic.
Changed components
Ledger Bitcoin appsrc/handler/get_extended_pubkey.cBIP-87 multisig xpub export flowInspect captured patch +1 / −0
diff --git a/src/handler/get_extended_pubkey.c b/src/handler/get_extended_pubkey.c
index 9025cea..e98ed1f 100644
--- a/src/handler/get_extended_pubkey.c
+++ b/src/handler/get_extended_pubkey.c
@@ -53,6 +53,7 @@ static bool is_path_safe_for_pubkey_export(const uint32_t bip32_path[], size_t b
case 49:
case 84:
case 86:
+ case 87:
hardened_der_len = 3;
break;
case 45:
Why this scored 53/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.