Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

unencrypted seed phrases in leveldb file #16

Open
azzsoft opened this issue Mar 27, 2020 · 2 comments
Open

unencrypted seed phrases in leveldb file #16

azzsoft opened this issue Mar 27, 2020 · 2 comments

Comments

@azzsoft
Copy link

azzsoft commented Mar 27, 2020

Tested version: minter-console-0.6.2-portable-x64.exe
All seed phrases, which have been submitted in the login form are stored unencrypted in the following plain text file: <windows_drive>\Users<username>\AppData\Roaming\minter-console-web\Local Storage\leveldb\000003
Seed phrases are accumulated in this file and moreover are not being cleared after logging out.
This is a very critical vulnerability, which confuse users, as they think, the solution from minter team is secure.

@shrpne
Copy link
Member

shrpne commented Mar 30, 2020

Thank you for reaching out!

Seed phrases are accumulated in this file and moreover are not being cleared after logging out.

Indeed there was a problem with Windows.
It should be fixed in v0.6.3. Now it should clear Local Storage\leveldb\000003.log after user logout and exit the app.

All seed phrases, which have been submitted in the login form are stored unencrypted

This behavior of storing data is defined by Chromium and it is pretty hard to change. Also if we try to use another storage, we still have to use password to encrypt data and password to decrypt. So why asking the user a password to decrypt mnemonic and login if we could ask mnemonic itself.
So mnemonic still will be stored in this file if user decides not to logout and preserve its session.

@azzsoft
Copy link
Author

azzsoft commented Apr 2, 2020

Good evening and thank you for the fix and reply,

I've tested the version 0.6.3 and there are no changes in this security issue:
to reproduce the bug I've deleted the whole directory

<windows_drive>\Users<username>\AppData\Roaming\minter-console-web

before starting the new version of the console.

After logging out, the seed phrase is still in the 000003.log file unencrypted.

In addition I would say that your approach in fixing the issue just slightly mitigates the risks of the seed phrase being stolen. As long as the user logged into console, the seed phrase is exposed and available through any process, which runs under the current user. I would prefer a slightly better approach, you could just encrypt the seed phrase on the fly as soon as the user has logged in, the encription credentials could be stored in memory during the working session, till the user does logout. For transaction signing process you can decrypt/encrypt the seed phrase on the fly.

Hope that my reply will help.
Regards
azz

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants