Hi everyone,
unfortunately, we/I didn’t progress as much as I would have liked on enabling required rights on all bundled pages in XS. Nevertheless, the security protections that are offered by required rights are important, and I think we should take the next step to really take advantage of them. For this, I propose the following two changes that have the goal to make it as difficult as possible for an attacker to create a document with required rights not enforced:
Don’t allow disabling enforcing required rights
Introduce a configuration option, enabled by default, that makes it impossible to change a document from enforcing required rights to not enforcing. I see two variations here:
- A boolean option.
- An option that allows specifying the right that is needed for disabling enforcing, allowing “edit” (no protection), “space_admin”, “wiki_admin”, “programming”, “illegal” (full protection) as values to allow admins of various levels but not regular users to disable enforcing required rights.
Enforce required rights by default for new documents
Introduce a configuration option, enabled by default, that enforces required rights by default for new documents created through the UI.
I would love to do the same for documents created through script APIs, but unfortunately, this would break way too many scripts.
Still, the idea would be to try to do an exhaustive search for all places where documents are created and to see if we can use the option there, too. As an example, all (new) user profiles should be created with required rights set to enforcing.
LTS versions
It seems clear to me that it is out of question to perform the aforementioned changes on any current LTS version. However, I would still like to offer admins the possibility to get the same security benefits on an opt-in basis. For this, I propose that we backport both proposed changes also on the current LTS version but with the configuration options disabled by default.
Thank you very much for your feedback!