Removing the special handling and the warning for the suspicious derivation paths (test framework)
What changed, and why it matters
This commit only changes test helper code, not the actual Ledger Bitcoin app that users run. It removes a special test-only shortcut for handling 'suspicious derivation path' warnings and replaces it with more explicit test button presses. There is no direct evidence in the commit that a real security vulnerability was fixed.
No security action required. Treat as routine test-maintenance cleanup. If investigating a broader issue, review related commits in the same timeframe for actual firmware changes.
Security signals we found
No changes to application firmware code
Changes confined to Python test automation helpers
Commit title explicitly notes 'test framework'
No mention of CVE, security fix, vulnerability, or researcher attribution in commit or diff
Evidence from the diff
The diff modifies two Python files in the test framework: ragger_bitcoin/ragger_instructions.py and tests/instructions.py. It deletes the footer_cancel() helper and updates pubkey_instruction_reject_early() and pubkey_reject() to use explicit navigation instructions. The commit title says it removes ‘special handling and the warning for the suspicious derivation paths’ in the test framework. No C code, no app logic, no cryptographic code is changed.
Changed components
ragger_bitcoin/ragger_instructions.pytests/instructions.pyInspect captured patch +5 / −8
diff --git a/ragger_bitcoin/ragger_instructions.py b/ragger_bitcoin/ragger_instructions.py
index e173871..a07571d 100644
--- a/ragger_bitcoin/ragger_instructions.py
+++ b/ragger_bitcoin/ragger_instructions.py
@@ -113,12 +113,6 @@ class Instructions:
self.new_request(reject_text, NavInsID.USE_CASE_REVIEW_TAP, NavInsID.USE_CASE_CHOICE_REJECT,
save_screenshot=save_screenshot)
- def footer_cancel(self, save_screenshot=True):
- self.new_request("Confirm", NavInsID.USE_CASE_REVIEW_TAP, NavInsID.CANCEL_FOOTER_TAP,
- save_screenshot=save_screenshot)
- self.new_request("rejected", NavInsID.USE_CASE_REVIEW_TAP, NavInsID.USE_CASE_STATUS_DISMISS,
- save_screenshot=save_screenshot)
-
def status_dismiss(self, text, status_on_same_request=True, save_screenshot=True):
if status_on_same_request:
self.same_request(text, NavInsID.USE_CASE_REVIEW_TAP, NavInsID.CANCEL_FOOTER_TAP,
diff --git a/tests/instructions.py b/tests/instructions.py
index e08f0a5..db54403 100644
--- a/tests/instructions.py
+++ b/tests/instructions.py
@@ -80,7 +80,9 @@ def pubkey_instruction_reject_early(model: Firmware) -> Instructions:
if model.name.startswith("nano"):
pytest.skip()
else:
- instructions.footer_cancel()
+ instructions.new_request("Path", NavInsID.USE_CASE_REVIEW_TAP, NavInsID.CANCEL_FOOTER_TAP)
+ instructions.same_request("Reject", NavInsID.USE_CASE_REVIEW_TAP, NavInsID.USE_CASE_CHOICE_CONFIRM)
+ instructions.status_dismiss("rejected", status_on_same_request=False)
return instructions
@@ -88,9 +90,10 @@ def pubkey_reject(model: Firmware) -> Instructions:
instructions = Instructions(model)
if model.name.startswith("nano"):
- instructions.new_request("Cancel")
+ instructions.new_request("Reject")
else:
instructions.choice_reject()
+ instructions.same_request("Reject", NavInsID.USE_CASE_REVIEW_TAP, NavInsID.USE_CASE_CHOICE_CONFIRM)
instructions.status_dismiss("rejected", status_on_same_request=False)
return instructions
Why this scored 12/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.