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

fix: wizard: qml: call checkIfLast in WCHaveSeed

Public commit record

What the developer wrote

Authored by f321x

100/100 · Strong
fix: wizard: qml: call checkIfLast in WCHaveSeed

When the user has already loaded a wallet in QML and tries to restore a
new wallet `WCHaveSeed.qml` incorrectly shows a `Finish` button instead
of a `Next` button and raises a KeyError if the user clicks on Finish
instead of resolving the passphrase input view (regression from
https://github.com/spesmilo/electrum/pull/10016).

This happens because `last` of `have_seed` depends on
`NewWalletWizard.is_single_password()` and NewWalletWizard.wants_ext(wizard_data).
`is_single_password()` is true if a wallet is already loaded,
while `wants_ext(wizard_data)` is false as `wants_ext()` depends on `seed_extend: True` in
`wizard_data` which only gets set after `apply()` of `WCHaveSeed` gets
called, however the evaluation of `WCHaveSeed` being the last view
happens before the view is shown.
By calling `checkIsLast()` in the validation timer of `WCHaveSeed` the
`last` property gets set again after `apply()` has been called, so
the view is guaranteed to correctly show either the `Finish` or `Next` button
after a seed has been entered.
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
The short version

What changed, and why it matters

This is a small UI bug fix in Electrum's mobile-style (QML) wallet setup wizard. When restoring a wallet from a seed phrase while another wallet was already open, the wizard wrongly showed a 'Finish' button instead of 'Next'. Clicking it could trigger a crash (KeyError). The fix makes the wizard recalculate which button to show after the seed details are processed. It is not a security vulnerability in the cryptographic sense, just a user-experience regression that could confuse or crash the app.

Recommended action

Treat as a routine bug fix / UX regression. No urgent security action is required. Users on affected versions should update to the fixed version if they use the QML (mobile/Android) wallet restore flow. Developers should verify the wizard button state in the regression test suite for seed restore with an already-loaded wallet.

Security signals we found

01

UI state inconsistency leading to application crash (KeyError)

02

Regression from prior pull request #10016

03

No cryptographic, authentication, or network security changes

04

No privilege escalation, data leakage, or remote code execution path

Risk score

Why this scored 22/100

Our methodology →
Potential impact 3/30
Exploitability 2/25
Stealth signal 2/15
Affected reach 3/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.