Hi everyone,
when fixing XWIKI-19549 I did a bigger change than I originally wanted to. What I did was to ensure that if a user doesn’t have view right on a document, it won’t end up in the context as many actions including back then the login
action allow overriding the template and thus viewing the document. However, this not only applies to login
which is kind of special, but also the comment action. When you had comment but not view right before that change, you were still able to view the document by passing xpage=view
when adding a comment. With this change, comment right is effectively denied when denying view right.
Unfortunately, this denial is not very clean and bad things can happen in some scenarios that I don’t want to discuss in detail here. What I would like to ask here is to get a choice between two ways to continue evolving XWiki’s rights:
- Properly deny all (standard?) rights when view right is denied, directly in the right computation. This already happened in practice since 13.10.4/14.2 by effectively denying all actions as the context document isn’t loaded and I haven’t heard any complaints.
- Undo parts of the changes for XWIKI-19549 and thereby basically grant an undeniable view right when the user has, e.g., comment, edit or delete right. For this, there are two options:
- Don’t explicitly grant view right but accept that it is implicitly granted and not consider this a security issue. This was the case before 13.10.4/14.2.
- Modify right resolution to make view right undeniable when other rights are granted. The question is which rights? Comment for example currently doesn’t imply view right.
I think the primary problem here is that we have lots of ways to end up with inconsistent and conflicting right resolutions and making this more consistent and more easily explainable to users is a big task.
To me, option 1 sounds like the safest security-wise and as we basically tested this in already two LTS releases now I think it should also be safe, so +1 for 1 from me.
Thank you very much for your opinions!