LedgerHQ / LedgerHQ/blue-loader-python

Nano S Plus - Invalid status 6d06 on ledgerblue.checkGenuine

Open
#98 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
125
Forks
75
PR merge metrics
No merged PRs in 30d

Description

Was meaning to run a hardware integrity test on my Nano S Plus, instead I get an exception

Running Python 3.10.2 using virtualenv in MacOS and libtool 2.4.7 installed via brew

Command ran

python3 -m ledgerblue.checkGenuine --targetId 0x33100004

Error

Traceback (most recent call last):
  File "/usr/local/Cellar/python@3.10/3.10.2/Frameworks/Python.framework/Versions/3.10/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/local/Cellar/python@3.10/3.10.2/Frameworks/Python.framework/Versions/3.10/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/usr/local/lib/python3.10/site-packages/ledgerblue/checkGenuine.py", line 137, in <module>
    secret = getDeployedSecretV2(dongle, bytearray.fromhex(args.rootPrivateKey), args.targetId, args.issuerKey)
  File "/usr/local/lib/python3.10/site-packages/ledgerblue/checkGenuine.py", line 44, in getDeployedSecretV2
    dongle.exchange(apdu)
  File "/usr/local/lib/python3.10/site-packages/ledgerblue/comm.py", line 145, in exchange
    raise CommException("Invalid status %04x (%s)" % (sw, possibleCause), sw, response)
ledgerblue.commException.CommException: Exception : Invalid status 6d06 (Unknown reason)

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the python3 -m ledgerblue.checkGenuine --targetId 0x33100004 command and reading ledgerblue/checkGenuine.py where getDeployedSecretV2 calls dongle.exchange. Then inspect ledgerblue/comm.py around exchange and determine the expected handling for status 6d06; done means the Nano S Plus integrity check has a clear, verified outcome instead of the reported unknown-status exception.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli, embedded-iot, security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.