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

qml/android: protect WIF keys from screenshots in more places

Public commit record

What the developer wrote

Authored by SomberNight

81/100 · Strong
qml/android: protect WIF keys from screenshots in more places

also fix bug in AddressDetails where we were never unsetting the secure flag

notes re dialog stacking:
- if we stack two "secure" dialogs and then pop one of them, the remaining "secure" dialog should still have secureWindow == true.
- we could either impl some refcounting for the number of alive "secure" dialogs
- or perhaps simpler but less robust, qml binding magic using the "when" as done here might work?
- ref https://doc.qt.io/qt-6/qml-qtqml-binding.html#restoreMode-prop
- the default restoreMode (Binding.RestoreBindingOrValue) seems to do what we want here
- I don't explicitly set it as the Qt docs have this note:
> Note: This property exists for backwards compatibility with earlier versions of Qt. Don't use it in new code.
- seems to work on my phone
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
The short version

What changed, and why it matters

This commit tightens screen-shot protection for private Bitcoin wallet keys (WIF keys and seed phrases) in Electrum's Android/QML user interface. It also fixes a bug where one screen (AddressDetails) was leaving the 'secure window' flag permanently on, which could leave the app in a protected state at the wrong time. The change makes sure the secure flag follows whether the dialog is actually visible, and adds the same protection to two more dialogs that handle private keys.

Recommended action

Treat as a routine hardening fix. Users running the Android/QML build should update to a release containing this commit. No independent action is required beyond normal patching.

Security signals we found

01

Adds FLAG_SECURE-style screenshot protection to additional private-key dialogs

02

Fixes a bug where secureWindow was never unset in AddressDetails

03

Uses QML Binding 'when' with restoreMode semantics to handle stacked secure dialogs safely

Risk score

Why this scored 48/100

Our methodology →
Potential impact 12/30
Exploitability 10/25
Stealth signal 8/15
Affected reach 7/15
Confidence 7/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.