Fix the scenario where there are errors in the UI during import
What changed, and why it matters
This commit fixes a minor user-interface navigation bug during the wallet recovery phrase import flow. When a user is importing a single recovery phrase and reaches the step for writing it to the secure element, the back/previous button could skip the wrong screen or behave oddly if no passphrase is needed. The fix adjusts which screen the user is sent back to. There is no direct evidence this is a security vulnerability.
Treat as a normal bug fix. No security response is indicated based on the commit content alone. If the UI bug caused user confusion or incorrect wallet setup, consider a low-priority release note mention, but no security advisory is warranted.
Security signals we found
UI navigation correction in wallet import flow
No changes to crypto, secure element, or authentication logic
No input validation, buffer handling, or memory safety changes
No vendor disclosure of security relevance
Evidence from the diff
In gui_import_phrase_widgets.c, the GuiImportPhrasePrevTile() function handles the back navigation during single-phrase import. A new case SINGLE_PHRASE_WRITE_SE is added: if GuiCreateWalletNeedPassphrase() returns false (no BIP39 passphrase is required), the current tile index is decremented once before the common decrement at the end of the function, effectively skipping back over the passphrase entry tile. This prevents the UI from showing an irrelevant or error-prone screen during import. The change is purely UI flow logic and does not modify cryptographic, storage, or authentication code.
Changed components
src/ui/gui_widgets/gui_import_phrase_widgets.cSingle recovery phrase import UI flowPrevious/back button navigation during importInspect captured patch +5 / −0
diff --git a/src/ui/gui_widgets/gui_import_phrase_widgets.c b/src/ui/gui_widgets/gui_import_phrase_widgets.c
index bc9f3c7..b08a684 100644
--- a/src/ui/gui_widgets/gui_import_phrase_widgets.c
+++ b/src/ui/gui_widgets/gui_import_phrase_widgets.c
@@ -192,6 +192,11 @@ int8_t GuiImportPhrasePrevTile(void)
SetRightBtnCb(g_pageWidget->navBarWidget, ResetClearImportHandler, NULL);
SetNavBarMidBtn(g_pageWidget->navBarWidget, NVS_MID_BUTTON_BUTT, NULL, NULL);
break;
+ case SINGLE_PHRASE_WRITE_SE:
+ if (!GuiCreateWalletNeedPassphrase()) {
+ g_importSinglePhraseTileView.currentTile--;
+ }
+ break;
}
g_importSinglePhraseTileView.currentTile--;
Why this scored 15/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.