What changed, and why it matters
This commit changes the Ledger Bitcoin app's Makefile to add two extra allowed derivation paths alongside the standard Bitcoin paths. One path (4541509') appears to be a special Electrum wallet path, and the other (45') is the BIP-45 whole-tree path for multi-signature wallets. This is a configuration change that widens which key derivation paths the app can use, but it does not by itself look like a vulnerability fix or an exploit. It is more like a compatibility/permission update.
Review whether the newly allowed paths (4541509' and 45') are intentionally and safely scoped. Confirm that the app-level derivation logic still enforces appropriate per-purpose/account boundaries and does not treat these broad paths as carte blanche. If this is a routine compatibility change, no immediate security action is needed beyond normal review.
Security signals we found
Expanded BIP32 derivation path allowlist
Adds Electrum-specific path 4541509'
Adds BIP-45 whole-tree path 45'
No code logic changes; build policy change only
Evidence from the diff
The Makefile’s PATH_APP_LOAD_PARAMS is expanded for both bitcoin_testnet and bitcoin builds. Previously only coin-type paths were allowed (‘/1’ for testnet, ‘/0’ for mainnet). The patch adds ‘4541509’’ (Electrum’s registered path) and ‘45’’ (BIP-45 whole tree). This affects the Ledger OS application loading policy and which BIP32 paths the app is permitted to derive during runtime. No code logic changes are present in the diff.
Changed components
Ledger Bitcoin app MakefilePATH_APP_LOAD_PARAMS application loading policyBIP32 derivation path allowlistInspect captured patch +4 / −4
diff --git a/Makefile b/Makefile
index e2246b9..655a8e7 100644
--- a/Makefile
+++ b/Makefile
@@ -61,8 +61,8 @@ HAVE_APPLICATION_FLAG_BOLOS_SETTINGS = 1
HAVE_APPLICATION_FLAG_LIBRARY = 1
ifeq ($(COIN),bitcoin_testnet)
- # Application allowed derivation paths (testnet).
- PATH_APP_LOAD_PARAMS = "*/1'"
+ # Application allowed derivation paths (testnet) + exception for Electrum + BIP-45 whole tree
+ PATH_APP_LOAD_PARAMS = "*/1'" "4541509'" "45'"
# Bitcoin testnet, no legacy support
DEFINES += BIP32_PUBKEY_VERSION=0x043587CF
@@ -75,8 +75,8 @@ ifeq ($(COIN),bitcoin_testnet)
APPNAME = "Bitcoin Test"
else ifeq ($(COIN),bitcoin)
- # Application allowed derivation paths (mainnet).
- PATH_APP_LOAD_PARAMS = "*/0'"
+ # Application allowed derivation paths (mainnet) + exception for Electrum + BIP-45 whole tree
+ PATH_APP_LOAD_PARAMS = "*/0'" "4541509'" "45'"
# the version for performance tests automatically approves all requests
# there is no reason to ever compile the mainnet app with this flag
Why this scored 25/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.