Skip to content

Set permissions of saved attachments to be private to the current user#6363

Merged
droidmonkey merged 2 commits intokeepassxreboot:developfrom
stefansundin:attachments-permissions
May 13, 2021
Merged

Set permissions of saved attachments to be private to the current user#6363
droidmonkey merged 2 commits intokeepassxreboot:developfrom
stefansundin:attachments-permissions

Conversation

@stefansundin
Copy link
Copy Markdown
Contributor

I sometimes want to export an SSH key from a database and use it without having KeePassXC running (I mostly use the SSH agent integration, but in certain cases I want the key outside of the database).

But what happens in that case is that I get this warning:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

So I run chmod 600 on the file and then continue on with my day.

But I think it would be appropriate if KeePassXC did this for me. After all, you may have things more sensitive than an SSH key and it is best if KeePassXC does whatever it can to keep those things private.

I wanted file.setPermissions to be run before file.write so that the permissions are set before the contents are written. But this would mean that an error would appear if you can't set the permissions for some reason, but I don't know if this is even a possible scenario.

Testing strategy

I compiled KeePassXC and exported files and made sure that the permission bits are set as expected.

$ ls -l id_rsa
-rw-------  1 stefan staff       1294 Apr  1 18:42  id_rsa

Type of change

  • ✅ New feature (change that adds functionality)

P.S.

The page https://github.com/keepassxreboot/keepassxc/wiki/Set-up-Build-Environment-on-Linux says that libqt5x11extras5-dev is an optional dependency, but it appears to be required now. If that's intended then the page should be updated.

Copy link
Copy Markdown
Contributor

@xvallspl xvallspl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please run clang-format/ make format on it

@droidmonkey droidmonkey modified the milestones: v2.7.0, v2.6.5 May 13, 2021
@droidmonkey droidmonkey merged commit ee92b98 into keepassxreboot:develop May 13, 2021
pull bot pushed a commit to NeatNerdPrime/keepassxc that referenced this pull request May 13, 2021
pull bot pushed a commit to iloeng/keepassxc that referenced this pull request May 13, 2021
pull bot pushed a commit to SammyEnigma/keepassxc that referenced this pull request May 13, 2021
droidmonkey added a commit that referenced this pull request Jun 8, 2021
Added

- Show search bar when toolbar is hidden or in overflow [#6279]
- Show countdown for clipboard clearing in status bar [#6333]
- Command line option to lock all open databases [#6511]
- Allow CSV import of bare TOTP secrets [#6211]
- Retain file creation time when saving database [#6576]
- Set permissions of saved attachments to be private to the current user [#6363]
- OPVault: Use Text instead of Name for attribute names [#6334]

Changed

- Reports: Allow resizing of reports columns [#6435]
- Reports: Toggle showing expired entries [#6534]
- Save Always on Top setting [#6236]
- Password generator can exclude additional lookalike characters (6/G, 8/B) [#6196]

Fixed

- Allow setting MSI properties in unattended install [#6196]
- Update MainWindow minimum size to enable smaller verticle space [#6196]
- Use application font size when setting default or monospace fonts [#6332]
- Fix notes not clearing in entry preview panel in some cases [#6481]
- macOS: Correct window activation when restoring from tray [#6575]
- macOS: Better handling of minimize after unlock when using browser integration [#6338]
- Linux: Start after the system tray is available on LXQt [#6216]
- Linux: Allow selection of modal dialogs on X11 in Auto-Type [#6204]
- KeeShare: prevent crash when file extension is missing [#6174]
aswild added a commit to aswild/keepassxc that referenced this pull request Jun 15, 2021
Release 2.6.5

Added

- Show search bar when toolbar is hidden or in overflow [keepassxreboot#6279]
- Show countdown for clipboard clearing in status bar [keepassxreboot#6333]
- Command line option to lock all open databases [keepassxreboot#6511]
- Allow CSV import of bare TOTP secrets [keepassxreboot#6211]
- Retain file creation time when saving database [keepassxreboot#6576]
- Set permissions of saved attachments to be private to the current user [keepassxreboot#6363]
- OPVault: Use Text instead of Name for attribute names [keepassxreboot#6334]

Changed

- Reports: Allow resizing of reports columns [keepassxreboot#6435]
- Reports: Toggle showing expired entries [keepassxreboot#6534]
- Save Always on Top setting [keepassxreboot#6236]
- Password generator can exclude additional lookalike characters (6/G, 8/B) [keepassxreboot#6196]

Fixed

- Allow setting MSI properties in unattended install [keepassxreboot#6196]
- Update MainWindow minimum size to enable smaller verticle space [keepassxreboot#6196]
- Use application font size when setting default or monospace fonts [keepassxreboot#6332]
- Fix notes not clearing in entry preview panel in some cases [keepassxreboot#6481]
- macOS: Correct window activation when restoring from tray [keepassxreboot#6575]
- macOS: Better handling of minimize after unlock when using browser integration [keepassxreboot#6338]
- Linux: Start after the system tray is available on LXQt [keepassxreboot#6216]
- Linux: Allow selection of modal dialogs on X11 in Auto-Type [keepassxreboot#6204]
- KeeShare: prevent crash when file extension is missing [keepassxreboot#6174]

Release 2.6.6

Fixed

- Fix focusing search when pressing hotkey [keepassxreboot#6603]
- Trim whitespace from TOTP key input prior to processing [keepassxreboot#6604]
- Fix building on macOS [keepassxreboot#6598]
- Resolve compiler warnings for unused return values [keepassxreboot#6607]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants