You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Share keys not updated when group members change #20146
I run into a critical bug when a folder is shared with a group and group members are updated afterwards.
Steps to reproduce
disable master key
enable encryption
add a new group and at least two additional users
add yourself and one user to the new group
share a folder with some stuff with this group Note:*nextcloud data root*/*user*/files_encryption/keys/files/*folder*/*file*/OC_DEFAULT_MODULE/ contains the keys of all group members and data/admin/files/keys/files/*folder*/*file* is encrypted
add the second user to the group
remove the first user from the group or delete it
Expected behaviour
After step 7 and 8 the key files should have been updated.
Actual behaviour
The key files are not updated and users that have been added to the group after the folder has been shared are not able to access its content. If a user is removed from the group or deleted, its key file is not cleaned up. This results in a very confusing situation, that after deleting a user and creating a new one with the exact same name, you re not able to share any files again.
This does also happen if you reset the password of a user.
Workaround
The owner of the files has to unsahre all folders and reshare them again after groups memebers have been changed. This is a really bad behavior and not practicable. It's also potential insecure that obsolete keys are not removed.
@nextcloud/encryption is it save to remove any obsolete user.shareKey by hand?
Server configuration
Operating system: any
Web server: any
Database: any
PHP version: 7.3
Nextcloud version: 18
Updated from an older Nextcloud/ownCloud or fresh install: fresh (just for this testcase))
We ran into this problem back in 2017 when we evaluated server-side-encryption but thought that this had to do with using an LDAP backend for the group definitions. I guess this problem stems from the fact that Nextcloud uses openssl_seal() internally to encrypt the file key. Thus, whenever a file/folder is shared, the file key is sealed for all recipient. When the file/folder is unshared, the corresponding file keys would have to be re-sealed which is quite CPU-intensive due to the RSA encryptions taking place underneath. Back then, using the user-key encryption proved to not be practical due to this problem.
Activity
weizenspreu commentedon Mar 26, 2020
We ran into this problem back in 2017 when we evaluated server-side-encryption but thought that this had to do with using an LDAP backend for the group definitions. I guess this problem stems from the fact that Nextcloud uses
openssl_seal()internally to encrypt the file key. Thus, whenever a file/folder is shared, the file key is sealed for all recipient. When the file/folder is unshared, the corresponding file keys would have to be re-sealed which is quite CPU-intensive due to the RSA encryptions taking place underneath. Back then, using the user-key encryption proved to not be practical due to this problem.szaimen commentedon May 31, 2021
J0WI commentedon Jun 1, 2021
szaimen commentedon Jan 9, 2023
J0WI commentedon Jan 28, 2023
pabzm commentedon Feb 11, 2025
This problem still exists on v29 and v30.