Version 0.77.2
2026-08-20 10:13:48 UTC
Security
2Revealing the wallet's private key now needs the account code checked where the key is, not on the page.
The screen already asked for the account code again before it showed the key, but it checked the code itself and then asked for the key — so the check was something page code could simply skip, and the part that hands out the key was only making sure a wallet was open. The code now goes to the part of NMTS that does the encryption, that part compares it, and what comes back is a permission it holds: single use, spent even when the export fails, dropped when you sign out or the account changes, and expiring on its own after a minute. The confirmation dialog is unchanged. On a device that remembers your account without a passphrase the account screen will show your code to whoever is sitting at it, so this raises the bar against code running in the page rather than against a person at an unlocked machine.
When a different account signs in on the same tab, the previous account's file keys go too.
Signing in as somebody else replaced the six secrets that come from the account code and nothing else. What it did not replace was everything held by a handle: the file keys already unwrapped, and any encryption or decryption still in progress. Those belong to whoever was signed in when they were made. They are now dropped the moment the account changes — and only then: a re-derivation onto the same account, which is what happens when a session pass expires and NMTS signs you back in quietly, keeps them, because dropping them there would cut an upload in flight.