Hi,
today we found a major error in the inheritance of folders.
How to reproduce the bug:
- Create a new folder “testdir1” with subfolders “testdir2” and “testdir3”
- In each folder create a test password (“testpw1”, “testpw2”, “testpw3”)
- Share the top folder “testdir1” with a user e.g. “testuser1” as “can read”
–> Now everything below “testdir1” is shared as read-only with “testuser1” ( “testpw1”, “testpw2” and “testpw3” ) like expected - Change the permissions for “testuser1” on the top folder “testdir1” to “can update”
Expectation: The change is inherited from “testdir1” to “testdir2” and “testdir3” including all passwords ( “testpw1”, “testpw2” and “testpw3” )
Reality: The update is only performed on “testdir1” and “testpw1”. “testdir2” and “testdir3” with the passwords ( “testpw2” and “testpw3” ) is still on “can read”
And now to the bigger problem:
When we remove “testuser1” from the top folder “testdir1” the inheritance should remove the “testuser1” from all sub folder “testdir2” and “testdir3” and the passwords ( “testpw1”, “testpw2” and “testpw3” ).
Right now the folder “testdir1” is removed from the list for “testuser1” but the user can still access all passwords ( “testpw1”, “testpw2” and “testpw3” ) and the two directories ( “testdir2” and “testdir3” ) from the folder structure.
Example usage: A user switches departments in the organization
Environment: passbolt:2.14.0-pro-debian
Folder structure:
testdir1
├── testdir2
│ ├── testdir3
│ │ └── testpw3
│ └── testpw2
└── testpw1
Best regards
Alex
Checklist
[x] I have read intro post: About the Installation Issues category
[x] I have read the tutorials, help and searched for similar issues
[x] I provide relevant information about my server (component names and versions, etc.)
[x] I provide a copy of my logs and healthcheck
[x] I describe the steps I have taken to trouble shoot the problem
[x] I describe the steps on how to reproduce the issue
Health check
____ __ ____
/ __ \____ _____ ____/ /_ ____ / / /_
/ /_/ / __ `/ ___/ ___/ __ \/ __ \/ / __/
/ ____/ /_/ (__ |__ ) /_/ / /_/ / / /
/_/ \__,_/____/____/_.___/\____/_/\__/
Open source password manager for teams
---------------------------------------------------------------
Healthcheck shell
---------------------------------------------------------------
Environment
[PASS] PHP version 7.3.24.
[PASS] PCRE compiled with unicode support.
[PASS] The temporary directory and its content are writable.
[PASS] The public image directory and its content are writable.
[PASS] The logs directory and its content are writable.
[PASS] GD or Imagick extension is installed.
[PASS] Intl extension is installed.
[PASS] Mbstring extension is installed.
Config files
[PASS] The application config file is present
[WARN] The passbolt config file is missing in /var/www/passbolt/config/
[HELP] Copy /var/www/passbolt/config/passbolt.default.php to /var/www/passbolt/config/passbolt.php
[HELP] The passbolt config file is not required if passbolt is configured with environment variables
Core config
[PASS] Debug mode is off.
[PASS] Cache is working.
[PASS] Unique value set for security.salt
[PASS] Full base url is set to https://passbolt.example.com
[PASS] App.fullBaseUrl validation OK.
[PASS] /healthcheck/status is reachable.
SSL Certificate
[PASS] SSL peer certificate validates
[PASS] Hostname is matching in SSL certificate.
[PASS] Not using a self-signed certificate
Database
[PASS] The application is able to connect to the database
[PASS] 35 tables found
[PASS] Some default content is present
[PASS] The database schema up to date.
GPG Configuration
[PASS] PHP GPG Module is installed and loaded.
[PASS] The environment variable GNUPGHOME is set to /home/www-data/.gnupg.
[PASS] The directory /home/www-data/.gnupg containing the keyring is writable by the webserver user.
[PASS] The server gpg key is not the default one
[PASS] The public key file is defined in config/passbolt.php and readable.
[PASS] The private key file is defined in config/passbolt.php and readable.
[PASS] The server key fingerprint matches the one defined in config/passbolt.php.
[PASS] The server public key defined in the config/passbolt.php (or environment variables) is in the keyring.
[PASS] There is a valid email id defined for the server key.
[PASS] The public key can be used to encrypt a message.
[PASS] The private key can be used to sign a message.
[PASS] The public and private keys can be used to encrypt and sign a message.
[PASS] The private key can be used to decrypt a message.
[PASS] The private key can be used to decrypt and verify a message.
[PASS] The public key can be used to verify a signature.
Application configuration
[FAIL] Could not connect to passbolt repository to check versions. It is not possible check if your version is up to date.
[HELP] Check the network configuration to allow this script to check for updates.
[PASS] Passbolt is configured to force SSL use.
[PASS] App.fullBaseUrl is set to HTTPS.
[PASS] Selenium API endpoints are disabled.
[PASS] Search engine robots are told not to index content.
[PASS] Registration is closed, only administrators can add users.
[PASS] Serving the compiled version of the javascript app
[PASS] All email notifications will be sent.
1 error(s) found. Hang in there!